clean up config, separate files
This commit is contained in:
parent
c929ef8cd2
commit
7a06ab6054
|
@ -1,84 +1,40 @@
|
|||
(defun copy-whole-line ()
|
||||
(interactive)
|
||||
(save-excursion
|
||||
(kill-new
|
||||
(buffer-substring
|
||||
(point-at-bol)
|
||||
(point-at-eol)))))
|
||||
(global-set-key (kbd "C-c w l") 'copy-whole-line)
|
||||
|
||||
(defun kill-all-buffers ()
|
||||
(interactive)
|
||||
(mapc 'kill-buffer (buffer-list)))
|
||||
(global-set-key (kbd "C-c k k") 'kill-all-buffers)
|
||||
|
||||
(defun split-and-follow-horizontally ()
|
||||
(interactive)
|
||||
(split-window-below)
|
||||
(balance-windows)
|
||||
(other-window 1))
|
||||
(global-set-key (kbd "C-x 2") 'split-and-follow-horizontally)
|
||||
|
||||
(defun split-and-follow-vertically ()
|
||||
(interactive)
|
||||
(split-window-right)
|
||||
(balance-windows)
|
||||
(other-window 1))
|
||||
(global-set-key (kbd "C-x 3") 'split-and-follow-vertically)
|
||||
|
||||
(defun switch-to-previous-buffer ()
|
||||
(interactive)
|
||||
(switch-to-buffer (other-buffer (current-buffer) 1)))
|
||||
(global-set-key (kbd "C-x b") 'switch-to-previous-buffer)
|
||||
(global-set-key (kbd "C-c b") 'switch-to-buffer)
|
||||
|
||||
;; compilation
|
||||
;;; Compilation
|
||||
(setq compile-command "make ")
|
||||
;; C-m functions as \r, so pressing C-x C-m C-m will call compile and skip the prompt.
|
||||
(global-set-key (kbd "C-x C-m") 'compile)
|
||||
|
||||
;; Nicer movement in compilation-mode.
|
||||
(add-hook 'compilation-mode-hook
|
||||
(lambda () (local-set-key (kbd "n") 'compilation-next-error)))
|
||||
(add-hook 'compilation-mode-hook
|
||||
(lambda () (local-set-key (kbd "p") 'compilation-previous-error)))
|
||||
|
||||
|
||||
(defun mark-line ()
|
||||
;; Function for selecting the current line.
|
||||
(defun fez/mark-line ()
|
||||
"Selects the current line with the mark."
|
||||
(interactive)
|
||||
(move-beginning-of-line nil)
|
||||
(set-mark (point))
|
||||
(move-end-of-line nil))
|
||||
|
||||
(global-unset-key (kbd "C-x C-z")) ; disable suspend frame
|
||||
(global-set-key (kbd "C-x C-z") 'mark-line)
|
||||
(global-unset-key (kbd "C-z")) ; disable suspend frame
|
||||
(global-set-key (kbd "C-x C-x") 'other-window)
|
||||
(global-set-key (kbd "C-x C-b") 'bs-show)
|
||||
|
||||
(defun toggle-indent ()
|
||||
;; Toggle between indenting with tabs or spaces.
|
||||
(defun fez/toggle-indent ()
|
||||
(interactive)
|
||||
(setq-default indent-tabs-mode (not indent-tabs-mode)))
|
||||
|
||||
(global-set-key [f5] (lambda ()
|
||||
(interactive)
|
||||
(disable-theme 'basic)
|
||||
(load-theme 'magik)))
|
||||
(global-set-key [f6] (lambda ()
|
||||
(interactive)
|
||||
(disable-theme 'magik)
|
||||
(load-theme 'basic)))
|
||||
|
||||
(defun current-line-empty-p ()
|
||||
(defun fez/current-line-empty-p ()
|
||||
(save-excursion
|
||||
(beginning-of-line)
|
||||
(looking-at-p "[[:space:]]*$")))
|
||||
|
||||
(defun flash-region (&optional timeout)
|
||||
(defun fez/flash-region (&optional timeout)
|
||||
"Temporarily highlight region from START to END. Taken from SLIME source code and modified."
|
||||
(interactive)
|
||||
(transient-mark-mode)
|
||||
(save-excursion
|
||||
(mark-defun)
|
||||
(while (current-line-empty-p)
|
||||
;; Don't mark the line above the s-expression.
|
||||
(while (fez/current-line-empty-p)
|
||||
(forward-char))
|
||||
(let* ((start (region-beginning))
|
||||
(end (region-end))
|
||||
|
@ -87,3 +43,31 @@
|
|||
(overlay-put overlay 'face 'secondary-selection)
|
||||
(run-with-timer (or timeout 0.2) nil 'delete-overlay overlay)))
|
||||
(transient-mark-mode))
|
||||
|
||||
;; Eshell convinience commands.
|
||||
(defalias 'open 'find-file-other-window)
|
||||
(defalias 'clean 'eshell/clear-scrollback)
|
||||
|
||||
;;; Keybinds
|
||||
|
||||
;; C-x C-z and C-z are normally mapped to suspend-frame, an absolutely useless function.
|
||||
;; Unbind them before making the keybind useful.
|
||||
(global-unset-key (kbd "C-x C-z"))
|
||||
(global-unset-key (kbd "C-z"))
|
||||
(global-set-key (kbd "C-x C-z") 'fez/mark-line)
|
||||
|
||||
;; Better buffer management (smol).
|
||||
(global-set-key (kbd "C-x C-b") 'bs-show)
|
||||
|
||||
;; Insipiration from Nyxt, kill the current buffer.
|
||||
(global-set-key (kbd "C-x C-k") 'kill-this-buffer)
|
||||
|
||||
;; Binds for switching between light and dark themes.
|
||||
(global-set-key [f5] (lambda ()
|
||||
(interactive)
|
||||
(disable-theme 'basic)
|
||||
(load-theme 'magik)))
|
||||
(global-set-key [f6] (lambda ()
|
||||
(interactive)
|
||||
(disable-theme 'magik)
|
||||
(load-theme 'basic)))
|
|
@ -0,0 +1,41 @@
|
|||
;; Essential stuff to load.
|
||||
;; This includes starting the package manager, setting the theme etc.
|
||||
|
||||
;; call package-initialize manually, disable automatic initialization:
|
||||
(setq package-enable-at-startup nil)
|
||||
|
||||
;; Hello, yes this is me.
|
||||
(setq user-mail-address "opfez@disroot.org")
|
||||
(setq user-full-name "opfez")
|
||||
(setq add-log-mailing-address "opfez@disroot.org")
|
||||
|
||||
;; If this isn't set, we can't download packages. It's weird.
|
||||
(setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3")
|
||||
|
||||
;; Manually installed modes.
|
||||
(add-to-list 'load-path "~/.emacs.d/plugins/")
|
||||
|
||||
;; Package
|
||||
(require 'package)
|
||||
(setq package-archives '(("gnu" . "http://mirrors.163.com/elpa/gnu/")
|
||||
("melpa" . "https://melpa.org/packages/")))
|
||||
(package-initialize)
|
||||
|
||||
;; Set up use-package for installing all other packages.
|
||||
(unless (package-installed-p 'use-package)
|
||||
(package-refresh-contents)
|
||||
(package-install 'use-package))
|
||||
|
||||
;; Autothemer is required for the theme I'm using, so it's essential!
|
||||
(use-package autothemer
|
||||
:ensure t)
|
||||
|
||||
;; Load custom colour scheme.
|
||||
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes/")
|
||||
(load-theme 'magik t)
|
||||
|
||||
;; Make the cursor visible in new frames
|
||||
(defun fez/correct-cursor-colour (frame)
|
||||
(modify-frame-parameters frame
|
||||
'((cursor-color . "#ffffff"))))
|
||||
(add-hook 'after-make-frame-functions 'fez/correct-cursor-colour)
|
136
init.el
136
init.el
|
@ -1,39 +1,36 @@
|
|||
;; call package-initialize manually, disable automatic initialization:
|
||||
(setq package-enable-at-startup nil)
|
||||
;; Load essentials.
|
||||
(load "~/.emacs.d/essential.el")
|
||||
|
||||
;; Packages
|
||||
;; Packages.
|
||||
(load "~/.emacs.d/packages.el")
|
||||
|
||||
;; Convenient functions
|
||||
(load "~/.emacs.d/functions.el")
|
||||
;; Correct bad defaults.
|
||||
(load "~/.emacs.d/tweaks.el")
|
||||
|
||||
;; Tab width
|
||||
;; Additional functions, keybinds.
|
||||
(load "~/.emacs.d/custom.el")
|
||||
|
||||
;; Start an emacs server from this session, if it isn't already running.
|
||||
;; This is useful for stuff like Nyxt where we can launch and emacsclient to
|
||||
;; evaluate forms.
|
||||
(when (not (server-running-p))
|
||||
(server-start))
|
||||
|
||||
;; Tab width.
|
||||
(setq-default tab-width 4)
|
||||
;; No tabs when editing Lisp
|
||||
;;(add-hook 'lisp-mode-hook '(setq indent-tabs-mode nil))
|
||||
;;(add-hook 'scheme-mode-hook '(setq indent-tabs-mode nil))
|
||||
;; Use spaces by default.
|
||||
(setq-default indent-tabs-mode nil)
|
||||
|
||||
;; Remove useless stuff
|
||||
(menu-bar-mode 0)
|
||||
(tool-bar-mode 0)
|
||||
(scroll-bar-mode 0)
|
||||
;;; Appearance
|
||||
;; The font is set in fontconfig. Usually it's UW Ttyp0 or Gohufont
|
||||
(set-frame-font "monospace 12")
|
||||
(setq default-frame-alist '((font . "monospace 12")))
|
||||
|
||||
;; UTF-8!!!!
|
||||
(set-language-environment "UTF-8")
|
||||
|
||||
;; Appearance
|
||||
(set-frame-font "monospace 13")
|
||||
(setq default-frame-alist '((font . "monospace 13")))
|
||||
(set-face-italic 'font-lock-comment-face nil) ; disable italics
|
||||
; theme set in packages.el
|
||||
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes/")
|
||||
(load-theme 'magik t)
|
||||
(global-linum-mode)
|
||||
(blink-cursor-mode nil)
|
||||
;; Highlight current line.
|
||||
(when window-system (global-hl-line-mode t))
|
||||
|
||||
;; Highlight matching parentheses.
|
||||
(show-paren-mode t)
|
||||
(setq confirm-kill-emacs 'y-or-n-p)
|
||||
|
||||
;; Mode line
|
||||
(line-number-mode t)
|
||||
|
@ -41,102 +38,43 @@
|
|||
(setq display-time-24hr-format t)
|
||||
(display-time-mode t)
|
||||
|
||||
;; disable creation of backup files
|
||||
(setq make-backup-files nil)
|
||||
(setq auto-save-default nil)
|
||||
|
||||
;; pretty lambdas
|
||||
;(setq-default prettify-symbols-alist '(("lambda" . 955)))
|
||||
;(global-prettify-symbols-mode 1)
|
||||
|
||||
;; Y or N instead of Yes or No
|
||||
(defalias 'yes-or-no-p 'y-or-n-p)
|
||||
|
||||
;; Smaller skips when cursor reaches end of screen
|
||||
(setq scroll-conservatively 100)
|
||||
|
||||
;; Disable bell
|
||||
(setq ring-bell-function 'ignore)
|
||||
|
||||
;; Subword for camelCase words
|
||||
(global-subword-mode t)
|
||||
;; "lambda" => λ
|
||||
;; Apparently messes up indentation or something? be wary of use.
|
||||
(setq-default prettify-symbols-alist '(("lambda" . 955)))
|
||||
(global-prettify-symbols-mode 1)
|
||||
|
||||
;; Electric pair mode
|
||||
(setq electric-pair-pairs '((?\( . ?\))
|
||||
(?\[ . ?\])
|
||||
(?\{ . ?\})
|
||||
(?\" . ?\")
|
||||
))
|
||||
(?\[ . ?\])
|
||||
(?\{ . ?\})
|
||||
(?\" . ?\")))
|
||||
(electric-pair-mode t)
|
||||
|
||||
(setq user-mail-address "opfez@disroot.org")
|
||||
(setq user-full-name "opFez")
|
||||
(setq add-log-mailing-address "opfez@disroot.org")
|
||||
|
||||
;; windmove
|
||||
(global-set-key (kbd "C-S-j") 'windmove-left)
|
||||
(global-set-key (kbd "C-S-k") 'windmove-down)
|
||||
(global-set-key (kbd "C-S-l") 'windmove-up)
|
||||
(global-set-key (kbd "C-:") 'windmove-right)
|
||||
|
||||
;; Terminal
|
||||
(defvar term-shell "/bin/mksh")
|
||||
(defadvice ansi-term (before force-bash)
|
||||
(interactive (list term-shell)))
|
||||
(ad-activate 'ansi-term)
|
||||
|
||||
;; C configuration
|
||||
(setq c-default-style "linux"
|
||||
c-basic-offset 4)
|
||||
|
||||
;; Scheme configuration
|
||||
;; (setq geiser-active-implementations '(guile))
|
||||
(setq geiser-active-implementations '(guile))
|
||||
(setq geiser-guile-binary "/usr/bin/guile")
|
||||
;; for ncurses development, uncomment this:
|
||||
;; (setq geiser-guile-binary "/usr/local/bin/guile-ncurses-shell")
|
||||
|
||||
;; (setq geiser-active-implementations '(mit))
|
||||
(setq geiser-active-implementations '(chez))
|
||||
;; (setq geiser-active-implementations '(chez))
|
||||
|
||||
;; Disable bold fonts
|
||||
(defun remap-faces-default-attributes ()
|
||||
(let ((family (face-attribute 'default :family))
|
||||
(height (face-attribute 'default :height)))
|
||||
(mapcar (lambda (face)
|
||||
(face-remap-add-relative
|
||||
face :family family :slant 'normal :weight 'normal :height height))
|
||||
(face-list))))
|
||||
|
||||
(when (display-graphic-p)
|
||||
(add-hook 'minibuffer-setup-hook 'remap-faces-default-attributes)
|
||||
(add-hook 'change-major-mode-after-body-hook 'remap-faces-default-attributes))
|
||||
|
||||
;; Eshell
|
||||
(defalias 'open 'find-file-other-window)
|
||||
(defalias 'clean 'eshell/clear-scrollback)
|
||||
|
||||
;; 80 character limit when writing text
|
||||
(add-hook 'text-mode-hook 'turn-on-auto-fill)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(custom-set-variables
|
||||
;; custom-set-variables 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.
|
||||
'(column-number-mode t)
|
||||
'(custom-safe-themes
|
||||
'("a6473f7abf949f4a6a1a9cc0dd37ea2e35ba3cea65d3442b98d65c5c5c5cb8d7" "b026761932dac55edfc103de7267ab1db5cd7cc183e06654a2be976cf3a09b9c" "2eeeb1813d66b7d1b858ecf7e4623f774ee555f4b6c1e6de93a1875c03af41de" "5a5e51dc0d54d7626f182dcc1712ed0bad80085db52da3fbe737be4f58d983d0" "4c5f4e96bbde8ab012c661b04c887d9cf65ee9fc37abcce661aabd3a098a69e9" "9c25bd583aa28e4a96af84c9bcf4b5c917bb2ec907ac9d5ab745e54b27104ec6" default))
|
||||
'(display-time-mode t)
|
||||
'(org-babel-load-languages '((awk . t) (lisp . t) (emacs-lisp . t) (C . t)))
|
||||
'(org-confirm-babel-evaluate nil)
|
||||
'(package-selected-packages
|
||||
'(frames-only-mode exwm geiser-mit basic-theme geiser-chicken geiser-guile disaster multiple-cursors nasm-mode carp-mode flycheck ido-mode move-text undo-tree sorcery-theme autothemer rust-mode paredit forth-mode avy swiper auto-package-update magit expand-region go-mode tao-themes tao-theme almost-mono-themes use-package))
|
||||
'(pdf-view-midnight-colors '("#dddddd" . "#000000"))
|
||||
'(show-paren-mode t)
|
||||
'(tool-bar-mode nil))
|
||||
'(selectrum use-package undo-tree swiper slime rust-mode paredit nasm-mode multiple-cursors move-text magit helm haskell-mode god-mode go-mode geiser-mit geiser-guile geiser-chicken geiser-chez frames-only-mode exwm expand-region elpher dumb-jump disk-usage disaster dashboard basic-theme avy autothemer auto-package-update)))
|
||||
(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.
|
||||
)
|
||||
;;
|
||||
(put 'downcase-region 'disabled nil)
|
||||
|
|
148
packages.el
148
packages.el
|
@ -1,103 +1,57 @@
|
|||
(setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3")
|
||||
|
||||
;; Manually installed modes
|
||||
(add-to-list 'load-path "~/.emacs.d/plugins/")
|
||||
|
||||
;; Package
|
||||
(require 'package)
|
||||
(setq package-archives '(("gnu" . "http://mirrors.163.com/elpa/gnu/")
|
||||
("melpa" . "https://melpa.org/packages/")))
|
||||
(package-initialize)
|
||||
|
||||
;; use-package
|
||||
(unless (package-installed-p 'use-package)
|
||||
(package-refresh-contents)
|
||||
(package-install 'use-package))
|
||||
|
||||
;; auto-package-update automatically updates packages and removes old ones
|
||||
;; Automatically update packages and removes old ones.
|
||||
(use-package auto-package-update
|
||||
:ensure t
|
||||
:config
|
||||
(setq auto-package-update-delete-old-versions t)
|
||||
(setq auto-package-update-hide-results t)
|
||||
(auto-package-update-maybe)
|
||||
)
|
||||
|
||||
;; support color theme
|
||||
(use-package autothemer
|
||||
:ensure t)
|
||||
(auto-package-update-maybe))
|
||||
|
||||
;; Light theme for using laptop outside.
|
||||
(use-package basic-theme
|
||||
:ensure t)
|
||||
|
||||
;; better incremental search with minibuffer
|
||||
(use-package swiper
|
||||
:ensure t
|
||||
:bind ("C-s" . 'swiper))
|
||||
|
||||
;; (use-package almost-mono-themes
|
||||
;; :ensure t
|
||||
;; :init
|
||||
;; (load-theme 'almost-mono-black t))
|
||||
|
||||
;; Languages
|
||||
|
||||
(use-package nasm-mode
|
||||
:ensure t
|
||||
:config
|
||||
(add-to-list 'auto-mode-alist '("\\.\\(asm\\|s\\)$" . nasm-mode))
|
||||
(setq nasm-basic-offset 4))
|
||||
|
||||
;;; Languages
|
||||
(use-package haskell-mode
|
||||
:ensure t
|
||||
:config
|
||||
(setq haskell-interactive-popup-errors nil)
|
||||
:init
|
||||
(add-hook 'haskell-mode-hook 'interactive-haskell-mode))
|
||||
|
||||
(use-package go-mode
|
||||
:ensure t)
|
||||
|
||||
(use-package rust-mode
|
||||
:ensure t)
|
||||
|
||||
(use-package elpher
|
||||
(use-package geiser
|
||||
:ensure t
|
||||
:config
|
||||
;; Make geiser flash the region being evaluated on C-c C-c, like SLIME does.
|
||||
(add-hook 'geiser-mode-hook
|
||||
(lambda ()
|
||||
(define-key geiser-mode-map (kbd "C-c C-c") nil) ;; remove default C-c C-c binding
|
||||
(local-set-key (kbd "C-c C-c") (lambda ()
|
||||
(interactive)
|
||||
(fez/flash-region)
|
||||
(geiser-eval-definition)))))
|
||||
;; geiser requires extra packages for every implementation you want to use
|
||||
(use-package geiser-guile
|
||||
:ensure t)
|
||||
(use-package geiser-mit
|
||||
:ensure t)
|
||||
(use-package geiser-chez
|
||||
:ensure t))
|
||||
|
||||
(use-package slime
|
||||
:ensure t
|
||||
:config
|
||||
(setq inferior-lisp-program "sbcl"))
|
||||
|
||||
(use-package geiser
|
||||
;; Amazing s-expression editing mode.
|
||||
(use-package paredit
|
||||
:ensure t
|
||||
:config
|
||||
(add-hook 'geiser-mode-hook
|
||||
(lambda ()
|
||||
(define-key geiser-mode-map (kbd "C-c C-c") nil) ;; remove default C-c C-c binding
|
||||
(local-set-key (kbd "C-c C-c") (lambda ()
|
||||
(interactive)
|
||||
(flash-region)
|
||||
(geiser-eval-definition))))))
|
||||
|
||||
(use-package geiser-guile
|
||||
:ensure t)
|
||||
|
||||
(use-package geiser-mit
|
||||
:ensure t)
|
||||
|
||||
(use-package geiser-chez
|
||||
:ensure t)
|
||||
|
||||
(use-package geiser-chicken
|
||||
:ensure t
|
||||
:config
|
||||
(setq geiser-chicken-binary "chicken-csi"))
|
||||
|
||||
(use-package disaster
|
||||
:ensure t
|
||||
:config
|
||||
(add-hook 'c-mode-hook
|
||||
(lambda () (local-set-key (kbd "C-c d") #'disaster))))
|
||||
(add-hook 'scheme-mode-hook 'paredit-mode)
|
||||
(add-hook 'lisp-mode-hook 'paredit-mode)
|
||||
(add-hook 'emacs-lisp-mode-hook 'paredit-mode))
|
||||
|
||||
;;; Utility packages
|
||||
;; undo-tree is mainly used for its redo functionality.
|
||||
(use-package undo-tree
|
||||
:ensure t
|
||||
:bind
|
||||
|
@ -106,6 +60,7 @@
|
|||
:config
|
||||
(global-undo-tree-mode))
|
||||
|
||||
;; Nice startup screen.
|
||||
(use-package dashboard
|
||||
:ensure t
|
||||
:config
|
||||
|
@ -115,31 +70,28 @@
|
|||
(setq dashboard-set-footer nil)
|
||||
(dashboard-setup-startup-hook))
|
||||
|
||||
;; Easier selection for s-expressions and other things.
|
||||
(use-package expand-region
|
||||
:ensure t
|
||||
:bind
|
||||
("C-=" . er/expand-region)
|
||||
:config
|
||||
(global-set-key (kbd "C-=") 'er/expand-region)
|
||||
(pending-delete-mode t)) ; if you start typing while a word is selected, overwrite it
|
||||
|
||||
;; Move lines of text up or down.
|
||||
(use-package move-text
|
||||
:ensure t
|
||||
:config
|
||||
(global-set-key (kbd "M-p") 'move-text-up)
|
||||
(global-set-key (kbd "M-n") 'move-text-down))
|
||||
|
||||
;; Multiple cursors make it easier to refactor stuff.
|
||||
(use-package multiple-cursors
|
||||
:ensure t
|
||||
:config
|
||||
(global-set-key (kbd "C->") 'mc/mark-next-like-this))
|
||||
|
||||
(use-package paredit
|
||||
:ensure t
|
||||
:config
|
||||
(add-hook 'scheme-mode-hook 'paredit-mode)
|
||||
(add-hook 'lisp-mode-hook 'paredit-mode)
|
||||
(add-hook 'emacs-lisp-mode-hook 'paredit-mode))
|
||||
|
||||
;; jump to definitions and files with M-.
|
||||
;; Jump to definitions and files with M-.
|
||||
(use-package dumb-jump
|
||||
:ensure t
|
||||
:config
|
||||
|
@ -150,18 +102,30 @@
|
|||
:ensure t
|
||||
:bind ("M-s" . avy-goto-char))
|
||||
|
||||
;; self explanatory
|
||||
;; Amazing git porcelain.
|
||||
(use-package magit
|
||||
:ensure t)
|
||||
|
||||
(use-package ido
|
||||
;; Minibuffer completion. Vertical display and faster than ido.
|
||||
(use-package selectrum
|
||||
:ensure t
|
||||
:config
|
||||
(ido-mode))
|
||||
(selectrum-mode t))
|
||||
|
||||
;; (use-package flycheck
|
||||
;; :ensure t
|
||||
;; :config
|
||||
;; )
|
||||
;; better incremental search with minibuffer
|
||||
(use-package swiper
|
||||
:ensure t
|
||||
:bind ("C-s" . 'swiper))
|
||||
|
||||
;; Instead of opening windows inside of Emacs, create new frames. This is great
|
||||
;; for tiling window managers.
|
||||
(use-package frames-only-mode
|
||||
:ensure t
|
||||
:config
|
||||
(frames-only-mode))
|
||||
|
||||
;; Mode for browsing gemini/gopher sites.
|
||||
(use-package elpher
|
||||
:ensure t)
|
||||
|
||||
(provide 'packages)
|
||||
|
|
|
@ -0,0 +1,83 @@
|
|||
;;; tweaks.el
|
||||
;; The settings in this file mostly correct bad defaults and add stuff I will
|
||||
;; never really tinker with. Settings that are more subject to change can be
|
||||
;; found in init.el.
|
||||
|
||||
;; Remove useless stuff.
|
||||
(menu-bar-mode 0)
|
||||
(tool-bar-mode 0)
|
||||
(scroll-bar-mode 0)
|
||||
(defun my/disable-scroll-bars (frame)
|
||||
(modify-frame-parameters frame
|
||||
'((vertical-scroll-bars . nil)
|
||||
(horizontal-scroll-bars . nil))))
|
||||
(add-hook 'after-make-frame-functions 'my/disable-scroll-bars)
|
||||
|
||||
;; Make sure UTF-8 is used.
|
||||
(set-language-environment "UTF-8")
|
||||
|
||||
;; Disable italic text.
|
||||
(set-face-italic 'font-lock-comment-face nil)
|
||||
|
||||
;; Disable bold text (looks huge, can't remember where I found it)
|
||||
(defun remap-faces-default-attributes ()
|
||||
(let ((family (face-attribute 'default :family))
|
||||
(height (face-attribute 'default :height)))
|
||||
(mapcar (lambda (face)
|
||||
(face-remap-add-relative
|
||||
face :family family :slant 'normal :weight 'normal :height height))
|
||||
(face-list))))
|
||||
(when (display-graphic-p)
|
||||
(add-hook 'minibuffer-setup-hook 'remap-faces-default-attributes)
|
||||
(add-hook 'change-major-mode-after-body-hook 'remap-faces-default-attributes))
|
||||
|
||||
;; Move backup files to another folder.
|
||||
(setq backup-directory-alist '((".*" . "~/.emacs.d/backups/"))
|
||||
auto-save-file-name-transforms '((".*" "~/.emacs.d/backups/" t)))
|
||||
|
||||
;; don't create .#<filename> files.
|
||||
(setq create-lockfiles nil)
|
||||
|
||||
;; save minibuffer history between sessions.
|
||||
(savehist-mode 1)
|
||||
|
||||
;; Y or N instead of Yes or No.
|
||||
(defalias 'yes-or-no-p 'y-or-n-p)
|
||||
|
||||
;; Smaller skips when cursor reaches end of screen.
|
||||
(setq scroll-conservatively 100)
|
||||
|
||||
;; Disable bell.
|
||||
(setq ring-bell-function 'ignore)
|
||||
|
||||
;; Subword for camelCase words (useful for Haskell).
|
||||
(global-subword-mode t)
|
||||
|
||||
;; Make ansi-term not ask for shell every time it starts.
|
||||
(defvar term-shell "/bin/mksh")
|
||||
(defadvice ansi-term (before force-bash)
|
||||
(interactive (list term-shell)))
|
||||
(ad-activate 'ansi-term)
|
||||
|
||||
;; Set the character limit to 80 and autowrap at character limit when writing text.
|
||||
(setq-default fill-column 80)
|
||||
(add-hook 'text-mode-hook 'turn-on-auto-fill)
|
||||
|
||||
;; I don't remember what this does, but it's probably important.
|
||||
(put 'downcase-region 'disabled nil)
|
||||
|
||||
;; Line numbers
|
||||
(global-linum-mode)
|
||||
|
||||
;; Ask before closing Emacs
|
||||
(setq confirm-kill-emacs 'y-or-n-p)
|
||||
|
||||
;; Mark files with shebangs as executable automatically (thanks archenoth!)
|
||||
(add-hook 'after-save-hook 'executable-make-buffer-file-executable-if-script-p)
|
||||
|
||||
;; delete trailing whitespace before saving
|
||||
(add-hook 'before-save-hook 'delete-trailing-whitespace)
|
||||
|
||||
;; Disable custom adding stuff to init.el by making it add stuff to a file in /tmp instead.
|
||||
;; Thanks Christopher Wellons! (first comment at https://irreal.org/blog/?p=3765)
|
||||
(setq custom-file (make-temp-file "emacs-custom"))
|
Loading…
Reference in New Issue