diff --git a/README.org b/README.org index cd41edc..9996b72 100755 --- a/README.org +++ b/README.org @@ -350,11 +350,13 @@ Remove a given host from =~/.ssh/known_hosts=. Something like =sed -i -e '/192.1 Create a new tempdir called ~[NAME]~, and cd into it. -*** TODO =doctor= +*** TODO =doctor= / =status= Run various checks on the system. -- Sizes of caches. perhaps those listed by ~sydnix.impermanence.cache.{files,directories}~? Offer to clean them if they're getting old. +- Sizes of caches. perhaps those listed by ~sydnix.impermanence.cache.{files,directories}~? Offer to clean them if they're getting old or large. + +- Check for available upgrades. Flake inputs, overlays, emacs packages, etc. * References diff --git a/users/crumb/programs/emacs.nix b/users/crumb/programs/emacs.nix index dbad0f2..cf84d19 100644 --- a/users/crumb/programs/emacs.nix +++ b/users/crumb/programs/emacs.nix @@ -51,16 +51,7 @@ in { sydnix.impermanence.cache.directories = [ straightBaseDir ]; home.packages = [ emacsWrapper ]; - # home.sessionVariables.EMACS_STRAIGHT_BASE_DIR = straightBaseDir; - - # programs.emacs = { - # enable = true; - # package = emacsPackage; - # # extraConfig = '' - # # (load (file-name-concat "${emacsConfigDir}" "init")) - # # ''; - # }; - + # TODO: Make sure this is using the right package for Emacs... services.emacs = { enable = true; # Generate a desktop entry for emacsclient. diff --git a/users/crumb/programs/emacs/init-straight.el b/users/crumb/programs/emacs/init-straight.el index 124e8cc..b13740c 100644 --- a/users/crumb/programs/emacs/init-straight.el +++ b/users/crumb/programs/emacs/init-straight.el @@ -19,8 +19,6 @@ (with-current-buffer url-buffer (goto-char (point-max)) (eval-print-last-sexp)))) - (load-file bootstrap-file) - ;; (load bootstrap-file nil 'nomessage) - ) + (load-file bootstrap-file)) (setq straight-use-package-by-default t)) diff --git a/users/crumb/programs/emacs/init.el b/users/crumb/programs/emacs/init.el index 460d025..e805dad 100644 --- a/users/crumb/programs/emacs/init.el +++ b/users/crumb/programs/emacs/init.el @@ -1,12 +1,16 @@ ;; -*- lexical-binding: t; -*- +;; Initialise Straight.el. (load (locate-user-emacs-file "init-straight")) (syd-initialise-straight) +;; Personal modules. (add-to-list 'load-path (file-name-concat user-emacs-directory "modules")) +(add-to-list 'load-path (file-name-concat user-emacs-directory "lib")) (require 'syd-evil) (require 'syd-ui) +(require 'syd-autosave) diff --git a/users/crumb/programs/emacs/modules/syd-autosave.el b/users/crumb/programs/emacs/modules/syd-autosave.el new file mode 100644 index 0000000..5da90da --- /dev/null +++ b/users/crumb/programs/emacs/modules/syd-autosave.el @@ -0,0 +1,39 @@ +;;; syd-autosave.el -*- lexical-binding: t; -*- + +(require 'syd-prelude) + +(use-package emacs + :config + (setq backup-directory-alist + `(("." . (file-name-concat syd-data-dir "backup"))) + ;; Nil means untracked files under VC won't get backed up. + vc-make-backup-files t + ;; Nil will clobber symlinks. + backup-by-copying t + ;; Use versioned backups. + version-control t + auto-save-file-name-transforms + ;; Good grief, girl... + `(("\\`/[^/]*:\\([^/]*/\\)*\\([^/]*\\)\\'" + ,(file-name-concat syd-cache-dir "autosave" "tramp-\\2") t) + (".*" + ,(file-name-concat syd-cache-dir "autosave") t)) + kept-new-versions 5 + delete-old-versions t + save-place-file (file-name-concat syd-cache-dir "places") + bookmark-default-file (file-name-concat syd-data-dir "bookmarks") + recentf-save-file (file-name-concat syd-data-dir "recentf"))) + +;; Save your cursor position in recently-opened files. +(use-package saveplace + :config + (save-place-mode 1)) + +;; Keep track of recently-visited files. +(use-package recentf + :config + (add-hook 'find-file-hook #'recentf-save-list) + (recentf-mode 1)) + + +(provide 'syd-autosave)