(load "init-dired.el") (require 'tramp) (setq tramp-default-method "ssh") ;; for root connections to remote hosts, log in via ssh with normal ;; user account first, then su/sudo to root (add-to-list 'tramp-default-proxies-alist '(nil "\\`root\\'" "/ssh:%h:")) (add-to-list 'tramp-default-proxies-alist '((regexp-quote (system-name)) nil nil)) ;; respect the PATH variable on the remote machine (add-to-list 'tramp-remote-path 'tramp-own-remote-path) ;; Backup (file~) disabled and auto-save (#file#) locally to prevent delays in editing remote files (add-to-list 'backup-directory-alist (cons tramp-file-name-regexp nil)) (setq tramp-auto-save-directory temporary-file-directory) (setq tramp-verbose 3) ;; Write backup files to own directory ;; TODO: conflicts with previous manipulation of backup-directory-alist (setq backup-directory-alist `(("." . ,(expand-file-name (concat user-emacs-directory "backups"))))) ;; Make backups of files, even when they're in version control (setq vc-make-backup-files t) (add-to-list 'auto-mode-alist '("\\.markdown\\'" . markdown-mode)) (add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode)) (add-to-list 'auto-mode-alist '("\\.js$" . js2-mode)) (setq scss-compile-at-save nil) ;; (setq whitespace-global-modes '(not erc-mode)) ;; (global-whitespace-mode 1) ;; (set-face-attribute 'whitespace-space nil :background nil :foreground "gray20") ;; (set-face-attribute 'whitespace-newline nil :background nil :foreground "gray20") ;; (setq whitespace-style ;; '(face spaces tabs newline space-mark tab-mark newline-mark)) ;; (setq whitespace-display-mappings ;; ;; all numbers are Unicode codepoint in decimal. try ;; ;; (insert-char 182 ) to see it ;; '( ;; (space-mark 32 [183] [46]) ; 32 SPACE, 183 MIDDLE DOT 「·」, ;; ; 46 FULL STOP 「.」 ;; (newline-mark 10 [182 10]) ; 10 LINE FEED ;; (tab-mark 9 [9655 9] [92 9]) ; 9 TAB, 9655 WHITE ;; ; RIGHT-POINTING TRIANGLE 「▷」 ;; )) (desktop-save-mode t) ;; ediff settings (setq ediff-diff-options "-w") ;; cause Emacs to fully redraw the display *before* it processes queued input events. (setq redisplay-dont-pause t) ;; fewer backslashes in regexp builder (require 're-builder) (setq reb-re-syntax 'string) ;; remove prompt on killing process buffer (setq kill-buffer-query-functions (remq 'process-kill-buffer-query-function kill-buffer-query-functions)) ;; enable features that are disabled by default (put 'narrow-to-region 'disabled nil) (put 'erase-buffer 'disabled nil) (put 'narrow-to-page 'disabled nil) (require 'fill-column-indicator) (setq fci-rule-use-dashes t) (setq fci-dash-pattern 0.3) (add-hook 'prog-mode-hook 'fci-mode) ;; keep the cursor centered to avoid sudden scroll jumps (require 'centered-cursor-mode) ;; disable in terminal modes ;; http://stackoverflow.com/a/6849467/519736 ;; also disable in Info mode, because it breaks going back with the backspace key (define-global-minor-mode my-global-centered-cursor-mode centered-cursor-mode (lambda () (when (not (memq major-mode (list 'Info-mode 'term-mode 'eshell-mode 'shell-mode 'erc-mode))) (centered-cursor-mode)))) (my-global-centered-cursor-mode 1) ;; expand region (global-set-key (kbd "M-@") 'er/expand-region) ;; Swap C-t and C-x, so it's easier to type on Dvorak layout ;; `keyboard-translate` does not work when attaching an emacsclient to ;; a running emacs in daemon mode, so instead we define the key in the ;; key-translation-map. ;; http://lists.gnu.org/archive/html/help-gnu-emacs/2009-10/msg00505.html (define-key key-translation-map [?\C-x] [?\C-t]) (define-key key-translation-map [?\C-t] [?\C-x]) ;; Use narrow tab width (set-default 'tab-width 4) (setq tab-width 4) (load "email.el") (load "init-org.el") (require 'my/init-org) (load "init-ido.el") (load "init-completion.el") (load "init-geiser.el") (load "init-gnus.el") (load "init-magit.el") (load "init-eshell.el") (load "init-smex.el") (load "init-modeline.el") (load "init-my-stuff.el") (load "init-paredit.el") (load "init-pretty.el") (load "init-music.el") (require 'my/init-music) (load "init-god-mode.el") (require 'my/init-god-mode) ;; start in fullscreen mode (add-hook 'emacs-startup-hook (lambda () (fullscreen-mode-fullscreen))) (add-hook 'doc-view-mode-hook 'auto-revert-mode) (page-break-lines-mode 1) (global-set-key (kbd "") 'backward-page) (global-set-key (kbd "") 'forward-page) (require 'info+) (setq Info-fontify-quotations-flag t) (setq Info-fontify-single-quote-flag t) (add-to-list 'auto-mode-alist '("\\.html\\'" . sgml-mode)) (eval-after-load "sgml-mode" '(progn (require 'tagedit) (tagedit-add-paredit-like-keybindings) (tagedit-add-experimental-features) (add-hook 'html-mode-hook (lambda () (tagedit-mode 1))))) (delete-selection-mode 1) ; delete seleted text when typing ;; don't let the cursor go into minibuffer prompt, HT Xah Lee (setq minibuffer-prompt-properties '(read-only t point-entered minibuffer-avoid-prompt face minibuffer-prompt)) (require 'undo-tree) (global-undo-tree-mode 1) (setq debbugs-gnu-default-packages '("emacs" "guix")) (setq erc-join-buffer 'bury) (savehist-mode) ;; PDF view mode (setq pdf-info-epdfinfo-program "~/.guix-profile/bin/epdfinfo") (pdf-tools-install) ;; enable variable-pitch-mode in eww (add-hook 'eww-mode-hook (lambda () (variable-pitch-mode 1))) ;; pretty quotes! (add-hook 'erc-mode-hook (lambda () (require 'typo) (typo-mode 1))) (add-hook 'org-mode-hook (lambda () (require 'typo) (typo-mode 1)))