diff --git a/emacs/auto/-custom.el b/emacs/auto/-custom.el deleted file mode 100644 index cdf1356..0000000 --- a/emacs/auto/-custom.el +++ /dev/null @@ -1,4 +0,0 @@ -(setq custom-file "~/.emacs.d/custom.el") -(load custom-file) - -;; EOF diff --git a/emacs/auto/-defaults.el b/emacs/auto/-defaults.el deleted file mode 100644 index d894b00..0000000 --- a/emacs/auto/-defaults.el +++ /dev/null @@ -1,16 +0,0 @@ -(defvaralias 'c-basic-offset 'tab-width) -(defvaralias 'ruby-indent-level 'tab-width) -(defvaralias 'rust-indent-offset 'tab-width) - -(defalias #'yes-or-no-p #'y-or-n-p) - -(add-to-list 'default-frame-alist '(width . 80)) -(add-to-list 'default-frame-alist '(height . 55)) - -(require 'rand-theme) -(setq rand-theme-wanted '(base16-atelier-cave - base16-atelier-forest - base16-atelier-heath)) -(rand-theme) - -;; EOF diff --git a/emacs/auto/-keys.el b/emacs/auto/-keys.el deleted file mode 100644 index 4775cfa..0000000 --- a/emacs/auto/-keys.el +++ /dev/null @@ -1,33 +0,0 @@ -(defvar agw-mode-map (make-sparse-keymap) - "Global keymap for `agw-mode'.") - -(define-minor-mode agw-key-map - "Minor mode for key bindings." - :global t - :keymap agw-mode-map) - -(defun agw-set-key (key def) - "Binds a key into `agw-mode-map'." - (define-key agw-mode-map (kbd (concat "C- " key)) def)) - -(agw-set-key "b d" #'kill-this-buffer) -(agw-set-key "b e" #'ibuffer) - -(agw-set-key "f" #'dired-jump) - -(agw-set-key "h" #'windmove-left) -(agw-set-key "j" #'windmove-down) -(agw-set-key "k" #'windmove-up) -(agw-set-key "l" #'windmove-right) - -(agw-key-map) - -(evil-global-set-key 'normal (kbd "K w") #'deadgrep) - -(evil-global-set-key 'visual (kbd "g s") #'sort-lines) -(evil-global-set-key 'visual (kbd "g a") #'ialign) - -; just in case - bind for disabling key map mode -(global-set-key (kbd "C-x C-") #'agw-key-map) - -;; EOF diff --git a/emacs/auto/-macro.el b/emacs/auto/-macro.el deleted file mode 100644 index 9273b21..0000000 --- a/emacs/auto/-macro.el +++ /dev/null @@ -1,35 +0,0 @@ -(defun agw-touch (fname) - "Touches a file asynchronously." - (interactive "FFile to touch: ") - (start-process "agw-touch" nil "touch" (expand-file-name fname))) - -(defun agw-lisp-mode () - "Sets up lisp and other functional language major modes." - (setq-local indent-tabs-mode nil) - (setq-local standard-indent 2) - (setq-local tab-width 2)) - -(defun agw-org-mode () - "Sets up `org-mode'." - (variable-pitch-mode) - (org-bullets-mode) - (flyspell-mode) - (setq-local indent-tabs-mode nil) - (setq-local standard-indent 2) - (setq-local tab-width 2)) - -(defun agw-dired-mode () - "Sets up `dired-mode'." - (local-set-key (kbd "C-c t") #'agw-touch)) - -(add-hook 'org-mode-hook #'agw-org-mode) - -(add-hook 'emacs-lisp-mode-hook #'agw-lisp-mode) -(add-hook 'lisp-mode-hook #'agw-lisp-mode) -(add-hook 'reb-lisp-mode-hook #'agw-lisp-mode) -(add-hook 'scheme-mode-hook #'agw-lisp-mode) -(add-hook 'haskell-mode-hook #'agw-lisp-mode) - -(add-hook 'dired-mode-hook #'agw-dired-mode) - -;; EOF diff --git a/emacs/auto/-packages.el b/emacs/auto/-packages.el deleted file mode 100644 index 628af81..0000000 --- a/emacs/auto/-packages.el +++ /dev/null @@ -1,46 +0,0 @@ -(require 'paradox) -(paradox-enable) - -(require 'rust-mode) - -(require 'evil) -(evil-collection-init) -(evil-mode 1) - -(require 'powerline) -(powerline-center-evil-theme) - -(require 'org) -(dolist (face '(org-block - org-block-begin-line - org-block-end-line - org-checkbox - org-code - org-date - org-document-info-keyword - org-verbatim)) - (set-face-attribute face nil :inherit 'fixed-pitch)) - -(require 'smart-tabs-mode) -(smart-tabs-add-language-support rust rust-mode-hook - ((rust-mode-indent-line . rust-indent-offset))) -(smart-tabs-add-language-support fish fish-mode-hook - ((fish-indent-line . fish-indent-offset))) -(smart-tabs-add-language-support glsl glsl-mode-hook - ((c-indent-line . c-basic-offset) - (c-indent-region . c-basic-offset))) -(smart-tabs-insinuate - 'c - 'fish - 'javascript - 'rust - 'glsl) - -(require 'ranger) - -(require 'mozc) -(setq default-input-method "japanese-mozc") - -(require 'ialign) - -;; EOF diff --git a/emacs/auto/-pkgdb.el b/emacs/auto/-pkgdb.el deleted file mode 100644 index a2da58f..0000000 --- a/emacs/auto/-pkgdb.el +++ /dev/null @@ -1,5 +0,0 @@ -(require 'package) -(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) -(package-initialize) - -;; EOF diff --git a/emacs/custom.el b/emacs/custom.el index 5c49146..6b7b485 100644 --- a/emacs/custom.el +++ b/emacs/custom.el @@ -3,110 +3,12 @@ ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. - '(auto-save-default nil) - '(backup-directory-alist (quote ((".*" . "~/.emacs.d/backup")))) - '(before-save-hook (quote (copyright-update delete-trailing-whitespace))) - '(create-lockfiles nil) - '(current-language-environment "UTF-8") - '(dired-listing-switches "-alhp --si") - '(diredfl-global-mode t nil (diredfl)) - '(evil-cjk-emacs-word-boundary t) - '(evil-cross-lines t) - '(evil-lookup-func (quote man)) - '(evil-mode t) - '(evil-shift-width 3) - '(evil-vsplit-window-right t) - '(fill-column 80) - '(fish-indent-offset 3) - '(gc-cons-threshold 20000000) - '(global-mark-ring-max 1024) - '(global-whitespace-mode nil) - '(horizontal-scroll-bar-mode nil) - '(hscroll-step 1) - '(ialign-default-spacing 2) - '(ialign-initial-repeat t) - '(indent-tabs-mode t) - '(inhibit-startup-screen t) - '(initial-buffer-choice "~/org/init.org") - '(initial-frame-alist (quote ((width . 80) (height . 30)))) - '(initial-scratch-message nil) - '(keyboard-coding-system (quote utf-8-unix)) - '(line-move-ignore-invisible nil) - '(mark-ring-max 1024) - '(menu-bar-mode nil) - '(mouse-wheel-progressive-speed nil) - '(org-bullets-bullet-list (quote ("•" "‣" "⁃" "◦" "○"))) - '(org-fontify-whole-heading-line t) - '(org-hide-emphasis-markers t) - '(org-hide-leading-stars t) - '(org-hide-macro-markers t) - '(org-indent-indentation-per-level 2) - '(org-link-frame-setup - (quote - ((vm . vm-visit-folder) - (vm-imap . vm-visit-imap-folder) - (gnus . gnus) - (file . find-file) - (wl . wl)))) - '(org-list-indent-offset 2) - '(org-log-done (quote note)) - '(org-pretty-entities t) - '(org-return-follows-link t) - '(org-startup-folded nil) - '(package-enable-at-startup nil) '(package-selected-packages (quote - (ialign rand-theme glsl-mode haskell-mode fish-mode evil-collection ranger deadgrep smart-tabs-mode diredfl rainbow-delimiters org-bullets markdown-mode rust-mode base16-theme powerline evil ## undo-tree paradox))) - '(prog-mode-hook - (quote - (flyspell-prog-mode prettify-symbols-mode subword-mode rainbow-delimiters-mode whitespace-mode))) - '(rainbow-delimiters-max-face-count 8) - '(ranger-override-dired (quote ranger)) - '(repeat-too-dangerous nil) - '(require-final-newline t) - '(ruby-insert-encoding-magic-comment nil) - '(scroll-bar-mode nil) - '(scroll-conservatively 101) - '(scroll-step 1) - '(sentence-end-double-space nil) - '(show-paren-delay 0.0) - '(show-paren-mode t) - '(show-paren-style (quote parenthesis)) - '(standard-indent 3) - '(tab-always-indent nil) - '(tab-width 3) - '(tool-bar-mode nil) - '(transient-mark-mode t) - '(vc-follow-symlinks t) - '(whitespace-style - (quote - (face trailing tabs spaces space-before-tab space-mark tab-mark)))) + (doom-modeline use-package ialign rand-theme glsl-mode haskell-mode fish-mode evil-collection ranger deadgrep smart-tabs-mode rainbow-delimiters org-bullets markdown-mode rust-mode base16-theme evil ## undo-tree)))) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. - '(mode-line ((t (:background "#0a0a0a" :foreground "#92ebf0" :box (:line-width -1 :style released-button) :height 65 :family "Dina")))) - '(mode-line-buffer-id ((t (:foreground "#2a9292" :box (:line-width -1 :style released-button) :height 65 :family "Dina")))) - '(mode-line-emphasis ((t (:foreground "#e2dfe7" :box (:line-width -1 :style released-button) :slant italic :height 65 :family "Dina")))) - '(mode-line-highlight ((t (:foreground "#955ae7" :box (:line-width -1 :style released-button) :weight bold :height 65 :family "Dina")))) - '(mode-line-inactive ((t (:background "#26232a" :foreground "#655f6d" :box (:line-width -1 :style released-button) :height 65 :family "Dina")))) - '(org-document-title ((t (:foreground "#aa573c" :weight bold :height 1.6)))) - '(org-level-1 ((t (:inherit outline-1 :height 1.35)))) - '(org-level-2 ((t (:inherit outline-2 :height 1.3)))) - '(org-level-3 ((t (:inherit outline-3 :height 1.25)))) - '(org-level-4 ((t (:inherit outline-4 :foreground "dark slate blue" :height 1.2)))) - '(org-level-5 ((t (:height 1.15)))) - '(org-level-6 ((t (:inherit outline-6 :height 1.1)))) - '(org-level-7 ((t (:inherit outline-7 :height 1.05)))) - '(rainbow-delimiters-depth-1-face ((t (:foreground "#e88385")))) - '(rainbow-delimiters-depth-2-face ((t (:foreground "#ec79c0")))) - '(rainbow-delimiters-depth-3-face ((t (:foreground "#cb88e8")))) - '(rainbow-delimiters-depth-4-face ((t (:foreground "#9181e8")))) - '(rainbow-delimiters-depth-5-face ((t (:foreground "#8dc8e8")))) - '(rainbow-delimiters-depth-6-face ((t (:foreground "#9fe8b6")))) - '(rainbow-delimiters-depth-7-face ((t (:foreground "#e2e8ab")))) - '(rainbow-delimiters-depth-8-face ((t (:foreground "#e8c498")))) - '(variable-pitch ((t (:height 120 :family "Noto Sans")))) - '(whitespace-space ((t (:background "#00000000" :foreground "#7e4594")))) - '(whitespace-tab ((t (:background "#00000000" :foreground "#7e4594"))))) + ) diff --git a/emacs/data.el b/emacs/data.el new file mode 100644 index 0000000..987cf1a --- /dev/null +++ b/emacs/data.el @@ -0,0 +1,49 @@ +(defgroup agw nil + "Alison G. Watson's customizations." + :prefix "agw-" + :group 'convenience) + +(defvar agw-mode-map (make-sparse-keymap) + "Global keymap for `agw-mode'.") + +(define-minor-mode agw-key-map + "Minor mode for key bindings." + :global t + :keymap agw-mode-map) + +(defun agw-set-key (key def) + "Binds a key into `agw-mode-map'." + (define-key agw-mode-map (kbd (concat "C- " key)) def)) + +(defun agw-touch (fname) + "Touches a file asynchronously." + (interactive "FFile to touch: ") + (start-process "agw-touch" nil "touch" (expand-file-name fname))) + +(defun agw-fp-mode () + "Sets up lisp and other functional language major modes." + (setq-local indent-tabs-mode nil) + (setq-local standard-indent 2) + (setq-local tab-width 2)) + +(defun agw-org-mode () + "Sets up `org-mode'." + (setq-local indent-tabs-mode nil) + (setq-local standard-indent 2) + (setq-local tab-width 2)) + +(defun agw-dired-mode () + "Sets up `dired-mode'." + (local-set-key (kbd "C-c t") #'agw-touch)) + +(defun agw-remove-elc () + "Removes an elc file if it exists." + (let ((elc (concat buffer-file-name "c"))) + (if (file-exists-p elc) + (delete-file elc)))) + +(defun agw-el-mode () + "Sets up `emacs-lisp-mode'." + (add-hook 'after-save-hook #'agw-remove-elc nil t)) + +;; EOF diff --git a/emacs/init.el b/emacs/init.el index 6785caf..a17f035 100644 --- a/emacs/init.el +++ b/emacs/init.el @@ -1,18 +1,319 @@ -(add-to-list 'load-path "~/.emacs.d/auto/") +;; startup +(setq auto-save-default nil + backup-directory-alist '((".*" . "~/.emacs.d/backup")) + create-lockfiles nil + custom-file "~/.emacs.d/custom.el" + gc-cons-threshold 64000000 + global-mark-ring-max 1024 + inhibit-compacting-font-caches t + inhibit-startup-screen t + initial-buffer-choice "~/org/init.org" + initial-scratch-message nil + mark-ring-max 1024) -(defgroup agw nil - "Alison G. Watson's customizations." - :prefix "agw-" - :group 'convenience) +(load custom-file) -; must be set before other operations -(setq evil-want-keybinding nil) +;; encoding +(setq current-language-environment "UTF-8" + keyboard-coding-system 'utf-8-unix) -(load "-pkgdb") -(load "-defaults") -(load "-custom") -(load "-packages") -(load "-macro") -(load "-keys") +;; visuals +(add-to-list 'default-frame-alist '(width . 80)) +(add-to-list 'default-frame-alist '(height . 30)) + +(add-to-list 'initial-frame-alist '(width . 80)) +(add-to-list 'initial-frame-alist '(height . 30)) + +(setq fill-column 80) + +(transient-mark-mode t) +(tool-bar-mode 0) +(menu-bar-mode 0) + +(set-face-attribute 'variable-pitch nil :height 120 :family "Noto Sans") + +;; ergonomics +(defalias #'yes-or-no-p #'y-or-n-p) +(setq line-move-ignore-invisible nil + mouse-wheel-progressive-speed nil + repeat-too-dangerous nil + require-final-newline t + sentence-end-double-space nil + vc-follow-symlinks t) + +;; parentheses +(setq show-paren-delay 0.0 + show-paren-style 'parenthesis) +(show-paren-mode t) + +;; scrolling +(setq scroll-conservatively 101 + scroll-step 1 + hscroll-step 1) +(set-scroll-bar-mode nil) + +;; tabulation +(setq tab-always-indent nil + tab-width 3 + standard-indent 3 + indent-tabs-mode t) + +(defvaralias 'c-basic-offset 'tab-width) +(defvaralias 'ruby-indent-level 'tab-width) +(defvaralias 'rust-indent-offset 'tab-width) + +(load "~/.emacs.d/data.el") + +;; spelling +(add-hook 'prog-mode-hook #'flyspell-prog-mode) + +;; prettify symbols +(add-hook 'prog-mode-hook #'prettify-symbols-mode) + +;; subword mode +(add-hook 'prog-mode-hook #'subword-mode) + +;; pkgdb +(setq package-enable-at-startup nil + package-archives '(("melpa" . "https://melpa.org/packages/") + ("gnu" . "https://elpa.gnu.org/packages/"))) + +(require 'package) +(package-initialize) + +(unless (package-installed-p 'use-package) + (package-refresh-contents) + (package-install 'use-package)) + +;; macros +(add-hook 'emacs-lisp-mode-hook #'agw-fp-mode) +(add-hook 'lisp-mode-hook #'agw-fp-mode) +(add-hook 'reb-lisp-mode-hook #'agw-fp-mode) +(add-hook 'scheme-mode-hook #'agw-fp-mode) + +(add-hook 'before-save-hook #'copyright-update) +(add-hook 'before-save-hook #'delete-trailing-whitespace) + +(agw-set-key "b d" #'kill-this-buffer) +(agw-set-key "b e" #'ibuffer) + +(agw-set-key "h" #'windmove-left) +(agw-set-key "j" #'windmove-down) +(agw-set-key "k" #'windmove-up) +(agw-set-key "l" #'windmove-right) + +(agw-key-map) + +(global-set-key (kbd "C-x C-") #'agw-key-map) + +;; theme +(use-package base16-theme + :ensure t) + +(use-package rand-theme + :ensure t + :after base16-theme + :config + (setq rand-theme-wanted '(base16-atelier-cave + base16-atelier-forest + base16-atelier-heath)) + (rand-theme)) + +(use-package doom-modeline + :ensure t + :after evil + :hook (after-init . doom-modeline-mode) + :init + (setq doom-modeline-bar-width 3 + doom-modeline-buffer-encoding nil + doom-modeline-buffer-file-name-style 'truncate-with-project + doom-modeline-major-mode-icon nil + doom-modeline-minor-modes t + doom-modeline-project-detection 'project + doom-modeline-vcs-max-length 8) + (set-face-attribute 'mode-line nil :background "black")) + +;; major modes +(use-package fish-mode + :ensure t + :init + (setq fish-indent-offset 3)) + +(use-package glsl-mode + :ensure t) + +(use-package haskell-mode + :ensure t + :hook (haskell-mode . agw-fp-mode)) + +(use-package markdown-mode + :ensure t) + +(use-package ruby-mode + :ensure t + :init + (setq ruby-insert-encoding-magic-comment nil)) + +(use-package rust-mode + :ensure t) + +;; org-mode +(use-package org + :ensure t + :hook ((org-mode . variable-pitch-mode) + (org-mode . flyspell-mode) + (org-mode . agw-org-mode)) + :init + (setq org-fontify-whole-heading-line t + org-hide-emphasis-markers t + org-hide-leading-stars t + org-hide-macro-markers t + org-indent-indentation-per-level 2 + org-list-indent-offset 2 + org-log-done '(note) + org-pretty-entities t + org-return-follows-link t + org-startup-folded nil + org-link-frame-setup '((vm . vm-visit-folder) + (vm-imap . vm-visit-imap-folder) + (gnus . gnus) + (file . find-file) + (wl . wl))) + :config + (dolist (face '(org-block + org-block-begin-line + org-block-end-line + org-checkbox + org-code + org-date + org-document-info-keyword + org-verbatim)) + (set-face-attribute face nil :inherit 'fixed-pitch)) + (set-face-attribute + 'org-document-title nil + :foreground "#aa573c" + :weight 'bold + :height 1.6) + (dolist (face '((org-level-1 outline-1 . 1.35) + (org-level-2 outline-2 . 1.30) + (org-level-3 outline-3 . 1.25) + (org-level-4 outline-4 . 1.20) + (org-level-5 outline-5 . 1.15) + (org-level-6 outline-6 . 1.10) + (org-level-7 outline-7 . 1.05))) + (set-face-attribute + (car face) nil + :inherit (car (cdr face)) + :height (cdr (cdr face)))) + (set-face-attribute 'org-level-4 nil :foreground "dark slate blue")) + +(use-package org-bullets + :ensure t + :after org + :hook (org-mode . org-bullets-mode) + :init + (setq org-bullets-bullet-list '("•" "‣" "⁃" "◦" "○"))) + +;; adjustments +(use-package smart-tabs-mode + :ensure t + :after (fish-mode glsl-mode rust-mode) + :config + (smart-tabs-add-language-support rust rust-mode-hook + ((rust-mode-indent-line . rust-indent-offset))) + (smart-tabs-add-language-support fish fish-mode-hook + ((fish-indent-line . fish-indent-offset))) + (smart-tabs-add-language-support glsl glsl-mode-hook + ((c-indent-line . c-basic-offset) + (c-indent-region . c-basic-offset))) + (smart-tabs-insinuate + 'c + 'fish + 'javascript + 'rust + 'glsl)) + +(use-package ialign + :ensure t + :init + (setq ialign-initial-repeat t)) + +(use-package rainbow-delimiters + :ensure t + :hook (prog-mode . rainbow-delimiters-mode) + :init + (setq rainbow-delimiters-max-face-count 8) + :config + (dolist (face '((rainbow-delimiters-depth-1-face . "#e88385") + (rainbow-delimiters-depth-2-face . "#ec79c0") + (rainbow-delimiters-depth-3-face . "#cb88e8") + (rainbow-delimiters-depth-4-face . "#9181e8") + (rainbow-delimiters-depth-5-face . "#8dc8e8") + (rainbow-delimiters-depth-6-face . "#9fe8b6") + (rainbow-delimiters-depth-7-face . "#e2e8ab") + (rainbow-delimiters-depth-8-face . "#e8c498"))) + (set-face-attribute (car face) nil :foreground (cdr face)))) + +(use-package undo-tree + :ensure t) + +(use-package whitespace + :ensure t + :hook (prog-mode . whitespace-mode) + :init + (setq whitespace-style '(face + space-before-tab + space-mark + spaces + tab-mark + tabs + trailing)) + :config + (dolist (face '(whitespace-space whitespace-tab)) + (set-face-attribute face nil :background nil :foreground "#7e4594"))) + +;; file management +(use-package dired + :hook (dired-mode . agw-dired-mode) + :config + (setq dired-listing-switches "-alhp --si") + (agw-set-key "f" #'dired-jump)) + +(use-package ranger + :ensure t + :after dired + :hook (dired-mode . ranger-override-dired-fn) + :config + (setq ranger-override-dired 'ranger)) + +(use-package deadgrep + :ensure t) + +;; input +(use-package mozc + :config + (setq default-input-method "japanese-mozc")) + +(use-package evil + :ensure t + :init + (setq evil-cjk-emacs-word-boundary t + evil-cross-lines t + evil-shift-width 3 + evil-vsplit-window-right t + evil-want-keybinding nil) + :config + (evil-mode t) + + (evil-global-set-key 'normal (kbd "K w") #'deadgrep) + + (evil-global-set-key 'visual (kbd "g s") #'sort-lines) + (evil-global-set-key 'visual (kbd "g a") #'ialign)) + +(use-package evil-collection + :ensure t + :after evil + :config + (evil-collection-init)) ;; EOF diff --git a/links b/links index a1ddc52..c6cdd73 100644 --- a/links +++ b/links @@ -20,6 +20,9 @@ applications/xprofile ~/.xprofile build-system/cargo.toml ~/.cargo/config build-system/makepkg.conf ~/.config/pacman/makepkg.conf computers/(hostname)/vconf ~/.vim/vconf +emacs/custom.el ~/.emacs.d/custom.el +emacs/data.el ~/.emacs.d/data.el +emacs/init.el ~/.emacs.d/init.el games/alephone/marathon-1.xml ~/.alephone/Marathon Preferences games/alephone/marathon-2.xml ~/.alephone/Marathon 2 Preferences games/alephone/marathon-infinity.xml ~/.alephone/Marathon Infinity Preferences