minor gitignore master
authorIan Kelling <iank@fsf.org>
Sun, 7 Jul 2024 22:27:31 +0000 (18:27 -0400)
committerIan Kelling <iank@fsf.org>
Sun, 7 Jul 2024 22:27:31 +0000 (18:27 -0400)
.gitignore
init.el
misc-disabled.el

index 34f4cb8de05348cd3fa3dfd515eafe9e26f55797..faf22b266e61c0c3fb71531d07374e059444c301 100644 (file)
@@ -1,4 +1,5 @@
 *.elc
 *.elc
+/eln-cache
 /.ido.last
 /.org-id-locations
 /.python-environments
 /.ido.last
 /.org-id-locations
 /.python-environments
@@ -47,3 +48,7 @@ marks
 # until i get submodules going
 /src
 /src2
 # until i get submodules going
 /src
 /src2
+
+# mastodon.el
+/mastodon.plstore
+/persist
diff --git a/init.el b/init.el
index 1b3b6d1550d39c112493c77865cc2f9dd7a955d4..0b7df73943b565c3b6d65c609a4a24a1d38c54d7 100644 (file)
--- a/init.el
+++ b/init.el
           ;; taken from wiegley, dunno why the t is there.
           t)
 
           ;; taken from wiegley, dunno why the t is there.
           t)
 
-;; stuff to allow an alternate location for ~/.emacs.d
-(setq user-emacs-directory (file-name-directory user-init-file))
-(when (getenv "EHOME")
-  (setenv "HOME" (getenv "EHOME")))
-
 ;; 2019-6-26, 1.26s
 ;; ; to profile init:
 ;; ; uncomment the following block
 ;; 2019-6-26, 1.26s
 ;; ; to profile init:
 ;; ; uncomment the following block
@@ -64,8 +59,9 @@
 ;; ; emacs -f benchmark-init/deactivate
 
 
 ;; ; emacs -f benchmark-init/deactivate
 
 
-;; these need to be done before the hook in order to satisfy the byte compiler or batch mode
+(setq init-dir (file-name-directory load-file-name))
 
 
+;; these need to be done before the hook in order to satisfy the byte compiler or batch mode
 (add-to-list 'load-path (concat user-emacs-directory "src/readline-complete"))
 
 ;; disabled since not used.
 (add-to-list 'load-path (concat user-emacs-directory "src/readline-complete"))
 
 ;; disabled since not used.
 
 
 
 
 
 
-(setq init-dir (file-name-directory load-file-name))
+;; ;; disabled because after 2024 update this keeps recompiling on every
+;; ;; startup and leaving open compile windows.
+;; ;; todo: move functions into separate byte compiled file, per:
+;; ;; https://www.gnu.org/software/emacs/manual/html_node/emacs/Init-File.html
+;; ;; If your init file defines many functions, consider moving them to
+;; ;; a separate (byte-compiled) file that you load in your init file.
+;;
 ;; previously, i was doing byte-recompile-directory, but
 ;; now i just have one init file
 ;; previously, i was doing byte-recompile-directory, but
 ;; now i just have one init file
-(unless (equal (user-uid) 0) ; don't make root owned files
-  (byte-recompile-file (expand-file-name "init.el" init-dir) nil 0)
-  (when (file-exists-p "/p/c/mymu4e.el")
-    (byte-recompile-file "/p/c/mymu4e.el" nil 0))
-  )
+;; (unless (equal (user-uid) 0) ; don't make root owned files
+;;   (byte-recompile-file (expand-file-name "init.el" init-dir) nil 0)
+;;   (when (file-exists-p "/p/c/mymu4e.el")
+;;     (byte-recompile-file "/p/c/mymu4e.el" nil 0))
+;;   )
 
 ;;; misc emacs documentation
 
 
 ;;; misc emacs documentation
 
 ;; find file at point
 (use-package ffap)
 
 ;; find file at point
 (use-package ffap)
 
+;; used in system-status finding unsaved buffers.
+(use-package dash)
 
 
 
 
 
 
 ;;(load custom-file 'noerror)
 
 
 ;;(load custom-file 'noerror)
 
 
-;;; auto-complete
-
-;; auto-completion in minibuffer
-;; disabled while I look for another alternative
-;;(icomplete-mode)
-
-(unless (string= (daemonp) "server")
-  (setq ac-use-comphist nil))
-(require 'auto-complete-config)
-(ac-config-default)
-
-
-;; complete after 1 char instead of default 2
-(setq ac-auto-start 1
-      ac-delay 0.001)
-
-(add-to-list 'ac-modes 'org-mode 'sql-mode)
-
-
-;; for org mode completion source taken from wiki.
-;; it did not work. no idea why. todo, investigate
-;; the ac-sources code is at http://www.emacswiki.org/emacs/AutoCompleteSources
-;; i've deleted it here so as to save space and not spam this file
-;;(defun my-ac-org-mode ()
-;;  (setq ac-sources (append ac-sources '(ac-source-org))))
-
-
-;; this makes the org-self-insert command not do a flyspell spell check.
-;; low priority thing to look into sometime
-(ac-flyspell-workaround)
 
 
 
 
-(define-key ac-completing-map (kbd "<up>") nil)
-(define-key ac-completing-map (kbd "<down>") nil)
-(define-key ac-completing-map (kbd "<S-return>") 'ac-expand)
-(define-key ac-completing-map "\t" 'ac-complete)
-;;(define-key ac-completing-map (kbd "<tab>") 'ac-complete)
-(define-key ac-completing-map (kbd "TAB") 'ac-complete)
-
-
-
-;;; auto-complete readline-complete
+;;; shell mode stuff
 
 (require 'readline-complete)
 ;; not sure how I made these, but I deleted, and
 ;; it would be nice to make them again sometime
 ;;(require 'src-loaddefs)
 
 
 (require 'readline-complete)
 ;; not sure how I made these, but I deleted, and
 ;; it would be nice to make them again sometime
 ;;(require 'src-loaddefs)
 
-;; disabled cuz broken
-;; redefining function in readline-complete so ac-complete only uses readline as a source
-(defun ac-rlc-setup-sources ()
-  "Add me to shell-mode-hook!"
-  (setq ac-sources '(ac-source-shell)))
-(add-hook 'shell-mode-hook 'ac-rlc-setup-sources)
 
 ;; generally unnecessary, but why not
 (setq explicit-shell-file-name "bash")
 
 ;; generally unnecessary, but why not
 (setq explicit-shell-file-name "bash")
 (setenv "EMACS" "")
 (setq explicit-bash-args nil)
 (setq comint-process-echoes t)
 (setenv "EMACS" "")
 (setq explicit-bash-args nil)
 (setq comint-process-echoes t)
-;; default of 30 is way too slow. todo, consider pushing this upstream
-(setq rlc-attempts 5)
-
-(add-to-list 'ac-modes 'shell-mode)
 
 
-;; readline-complete recommends this (i assume this format),
-;; but greping finds no reference in emacs or my .emacs.d
-;; so I'm assuming it is for an older emacs
-;;(setq explicit-ssh-args '("-t"))
 
 
-(add-hook 'shell-mode-hook
-          (lambda ()
-            ;;(define-key shell-mode-map (kbd "<tab>") 'auto-complete)
-            (define-key shell-mode-map (kbd "TAB") 'auto-complete)
-            ))
+;; todo: consider if this is needed in company mode.
+;; and we also set shift-return to ac-expand.
+;;
+;; (add-hook 'shell-mode-hook
+;;           (lambda ()
+;;             ;;(define-key shell-mode-map (kbd "<tab>") 'auto-complete)
+;;             (define-key shell-mode-map (kbd "TAB") 'auto-complete)
+;;             ))
 
 
 
 
-;;; readline complete fix
 
 ;; I need this function here, where INSIDE_EMACS is replaced with LC_INSIDE_EMACS.
 ;; ian: last update 2017-1-7. update this periodically from upstream
 
 ;; I need this function here, where INSIDE_EMACS is replaced with LC_INSIDE_EMACS.
 ;; ian: last update 2017-1-7. update this periodically from upstream
        (set-process-coding-system proc decoding encoding))
     proc))
 
        (set-process-coding-system proc decoding encoding))
     proc))
 
+;;; auto-complete
+
+(add-hook 'after-init-hook 'global-company-mode)
+
 ;;; auto save
 
 ;; todo: patch this so i can turn it off like my-as-off-local.
 ;;; auto save
 
 ;; todo: patch this so i can turn it off like my-as-off-local.
@@ -1110,10 +1067,6 @@ A non-nil CURRENT-ONLY argument means save only current buffer."
 ;; this fixes save error for python example code
 (define-coding-system-alias 'UTF-8 'utf-8)
 
 ;; this fixes save error for python example code
 (define-coding-system-alias 'UTF-8 'utf-8)
 
-;; i don't use frame titles, but if I ever do
-;; this starter kit setting is probably good
-(if window-system (setq frame-title-format '(buffer-file-name "%f" ("%b"))))
-
 
 ;;(prefer-coding-system 'utf-8-unix)
 
 
 ;;(prefer-coding-system 'utf-8-unix)
 
@@ -1314,7 +1267,10 @@ Go to the next directory based on where the cursor is."
 
 ;;; mode line
 ;; make window title be the buffer name
 
 ;;; mode line
 ;; make window title be the buffer name
-(setq frame-title-format "%b")
+(setq
+ frame-title-format "e-iak %b"
+ icon-title-format "e-iak %b"
+ )
 
 (defun my-after-change-major-mode-hook ()
   (setq mode-line-mule-info nil
 
 (defun my-after-change-major-mode-hook ()
   (setq mode-line-mule-info nil
@@ -1485,7 +1441,6 @@ Go to the next directory based on where the cursor is."
 
   ;; todo, this is causing error message on loading file, prolly not working
   ;;(flycheck-mode +1)
 
   ;; todo, this is causing error message on loading file, prolly not working
   ;;(flycheck-mode +1)
-  (setq ac-sources (delq 'ac-source-dictionary ac-sources))
   (highlight-symbol-mode)
   (make-local-variable 'column-number-mode)
   ;; this says do autofilling using newcomment.el. The "only" is a misnomer.
   (highlight-symbol-mode)
   (make-local-variable 'column-number-mode)
   ;; this says do autofilling using newcomment.el. The "only" is a misnomer.
@@ -1747,9 +1702,13 @@ or else the number of characters matched by `outline-regexp'."
         erc-track-visibility 'visible
         ;; switch to buffer where i've been mentioned, etc instead of oldest
         erc-track-switch-direction 'importance
         erc-track-visibility 'visible
         ;; switch to buffer where i've been mentioned, etc instead of oldest
         erc-track-switch-direction 'importance
-        ;; defaults minus fill. todo: modify the list instead of specifying it explicitly in case the defaults change
-        erc-modules
-        '(autojoin button completion imenu irccontrols list match menu move-to-prompt netsplit networks noncommands readonly ring stamp track)
+        ;; when starting erc, open #fsfsys. otherwise it is super
+        ;; annoying to always have to manually switch buffers.
+        erc-join-hook (lambda () (when (string= (buffer-name(current-buffer)) "#fsfsys") (switch-to-buffer (current-buffer))))
+        ;; defaults minus fill. you can find defaults by searching for
+        ;; defcustom erc-modules in erc.el, or customize group erc.
+        erc-modules '(autojoin button completion imenu irccontrols list match menu
+           move-to-prompt netsplit networks readonly ring stamp track)
         ;; expanded from https://www.emacswiki.org/emacs/ErcChannelTracking,
         ;; ignore various messages
         erc-track-exclude-types '("JOIN" "NICK" "PART" "QUIT" "MODE"
         ;; expanded from https://www.emacswiki.org/emacs/ErcChannelTracking,
         ;; ignore various messages
         erc-track-exclude-types '("JOIN" "NICK" "PART" "QUIT" "MODE"
@@ -1769,7 +1728,6 @@ or else the number of characters matched by `outline-regexp'."
                                         "#fsfsys"
                                         "#gnu"
                                         "#librecmc"
                                         "#fsfsys"
                                         "#gnu"
                                         "#librecmc"
-                                        "#libreplanet-tech-support"
                                         "#libreplanet"
                                         "#mnt-reform"
                                         "#nouveau"
                                         "#libreplanet"
                                         "#mnt-reform"
                                         "#nouveau"
@@ -1845,7 +1803,7 @@ or else the number of characters matched by `outline-regexp'."
 (dolist
     (r `(
          (?i (file . ,(concat user-emacs-directory "init.el")))
 (dolist
     (r `(
          (?i (file . ,(concat user-emacs-directory "init.el")))
-         (?o (file . ,"/a/work.org"))
+         (?o (file . ,"/b/w/work.org"))
          (?t (file . ,"/a/t.org"))
          (?s (file . ,"/usr/share/doc/exim4-base/spec.txt.gz"))
          (?w (file . ,"/p/w.org"))
          (?t (file . ,"/a/t.org"))
          (?s (file . ,"/usr/share/doc/exim4-base/spec.txt.gz"))
          (?w (file . ,"/p/w.org"))
@@ -2195,10 +2153,6 @@ modes like org-mode which have their own yank function."
 
 (global-set-key (kbd "\r") 'indent-new-comment-line)
 
 
 (global-set-key (kbd "\r") 'indent-new-comment-line)
 
-;; don't use enter for autocomplete, we use tab or something
-(define-key ac-completing-map (kbd "<return>") nil)
-(define-key ac-completing-map "\r" nil)
-
 (add-hook 'org-mode-hook
           (lambda ()
             ;; copied from org-mode, replace org-enter with org-enter-indent
 (add-hook 'org-mode-hook
           (lambda ()
             ;; copied from org-mode, replace org-enter with org-enter-indent
@@ -2615,14 +2569,14 @@ modes like org-mode which have their own yank function."
 (global-set-key (kbd "C-(") 'run)
 
 ;; make compile work from the gtags root dir
 (global-set-key (kbd "C-(") 'run)
 
 ;; make compile work from the gtags root dir
-(defadvice compile (before pre-compile-advice activate)
-  (basic-save-buffer)
-  (when (set-p ggtags-project-root)
-    (setq-local compile-saved-dir default-directory)
-    (setq default-directory ggtags-project-root)))
-(defadvice compile (after post-compile-advice activate)
-  (when (bound-and-true-p compile-saved-dir)
-    (setq default-directory compile-saved-dir)))
+;; (defadvice compile (before pre-compile-advice activate)
+;;   (basic-save-buffer)
+;;   (when (set-p ggtags-project-root)
+;;     (setq-local compile-saved-dir default-directory)
+;;     (setq default-directory ggtags-project-root)))
+;; (defadvice compile (after post-compile-advice activate)
+;;   (when (bound-and-true-p compile-saved-dir)
+;;     (setq default-directory compile-saved-dir)))
 
 
 (add-hook 'c-mode-hook (lambda () (define-key c-mode-map (kbd "C-(") 'compile)))
 
 
 (add-hook 'c-mode-hook (lambda () (define-key c-mode-map (kbd "C-(") 'compile)))
@@ -2690,7 +2644,7 @@ modes like org-mode which have their own yank function."
 ;; I did a grep of the emacs sources, but couldn't find anything.
 ;; (define-key universal-argument-map [?9 nil)
 
 ;; I did a grep of the emacs sources, but couldn't find anything.
 ;; (define-key universal-argument-map [?9 nil)
 
-;;;;; C-M-9 - end server edit
+;;;;; C-M-8 - end server edit
 ;;  save & kill buffer if it was opened externally via emacsclient
 
 
 ;;  save & kill buffer if it was opened externally via emacsclient
 
 
@@ -2698,7 +2652,9 @@ modes like org-mode which have their own yank function."
   (interactive)
   (save-buffer)
   (server-edit))
   (interactive)
   (save-buffer)
   (server-edit))
-(global-set-key (kbd "C-M-9") 'server-edit-save)
+;; this was c-m-9, but I have a laptop where
+;; that key does nothing. seems like an n-key limitation.
+(global-set-key (kbd "C-M-8") 'server-edit-save)
 
 ;;;;; C-u - universal-argument
 ;;;;; C-M-u - search-keybind
 
 ;;;;; C-u - universal-argument
 ;;;;; C-M-u - search-keybind
index 0a7c5b3edea7fa25a3850ac02287a855e90ed2dd..18305264cfe0c8cadc91a4dad4c1d861fd887763 100644 (file)
@@ -1,3 +1,154 @@
+;; auto-completion in minibuffer
+;; disabled while I look for another alternative
+;;(icomplete-mode)
+
+(unless (string= (daemonp) "server")
+  (setq ac-use-comphist nil))
+(require 'auto-complete-config)
+(ac-config-default)
+
+
+;; complete after 1 char instead of default 2
+(setq ac-auto-start 1
+      ac-delay 0.001)
+
+(add-to-list 'ac-modes 'org-mode 'sql-mode)
+
+
+;; for org mode completion source taken from wiki.
+;; it did not work. no idea why. todo, investigate
+;; the ac-sources code is at http://www.emacswiki.org/emacs/AutoCompleteSources
+;; i've deleted it here so as to save space and not spam this file
+;;(defun my-ac-org-mode ()
+;;  (setq ac-sources (append ac-sources '(ac-source-org))))
+
+
+;; this makes the org-self-insert command not do a flyspell spell check.
+;; low priority thing to look into sometime
+(ac-flyspell-workaround)
+
+
+(define-key ac-completing-map (kbd "<up>") nil)
+(define-key ac-completing-map (kbd "<down>") nil)
+(define-key ac-completing-map (kbd "<S-return>") 'ac-expand)
+(define-key ac-completing-map "\t" 'ac-complete)
+;;(define-key ac-completing-map (kbd "<tab>") 'ac-complete)
+(define-key ac-completing-map (kbd "TAB") 'ac-complete)
+
+
+
+;;; auto-complete readline-complete
+
+(require 'readline-complete)
+;; not sure how I made these, but I deleted, and
+;; it would be nice to make them again sometime
+;;(require 'src-loaddefs)
+
+;; disabled cuz broken
+;; redefining function in readline-complete so ac-complete only uses readline as a source
+(defun ac-rlc-setup-sources ()
+  "Add me to shell-mode-hook!"
+  (setq ac-sources '(ac-source-shell)))
+(add-hook 'shell-mode-hook 'ac-rlc-setup-sources)
+
+
+;; readline-complete says to add this line.
+;; however, it  up my procfs directory tracking hook
+;; because get-process doesn't notice the child shell.
+;; instead, I've removed export EMACS=t from
+;;  comint-exec-1 (the function which initially sets it)
+;; by finding it in emacs sources and redefinind it here
+;; and done stty echo in my bashrc
+;;(setq explicit-bash-args '("-c" "export EMACS=; stty echo; bash"))
+
+;; generally unnecessary, but why not
+(setq explicit-shell-file-name "bash")
+(setenv "EMACS" "")
+(setq explicit-bash-args nil)
+(setq comint-process-echoes t)
+
+;; default of 30 is way too slow. todo, consider pushing this upstream
+(setq rlc-attempts 5)
+
+(add-to-list 'ac-modes 'shell-mode)
+
+;; readline-complete recommends this (i assume this format),
+;; but greping finds no reference in emacs or my .emacs.d
+;; so I'm assuming it is for an older emacs
+;;(setq explicit-ssh-args '("-t"))
+
+(add-hook 'shell-mode-hook
+          (lambda ()
+            ;;(define-key shell-mode-map (kbd "<tab>") 'auto-complete)
+            (define-key shell-mode-map (kbd "TAB") 'auto-complete)
+            ))
+
+
+;;; readline complete fix
+
+;; I need this function here, where INSIDE_EMACS is replaced with LC_INSIDE_EMACS.
+;; ian: last update 2017-1-7. update this periodically from upstream
+;; like when we do a major emacs update
+(defun comint-exec-1 (name buffer command switches)
+  (let ((process-environment
+        (nconc
+         ;; If using termcap, we specify `emacs' as the terminal type
+         ;; because that lets us specify a width.
+         ;; If using terminfo, we specify `dumb' because that is
+         ;; a defined terminal type.  `emacs' is not a defined terminal type
+         ;; and there is no way for us to define it here.
+         ;; Some programs that use terminfo get very confused
+         ;; if TERM is not a valid terminal type.
+         ;; ;; There is similar code in compile.el.
+         (if (and (boundp 'system-uses-terminfo) system-uses-terminfo)
+             (list "TERM=dumb" "TERMCAP="
+                   (format "COLUMNS=%d" (window-width)))
+           (list "TERM=emacs"
+                 (format "TERMCAP=emacs:co#%d:tc=unknown:" (window-width))))
+         (list (format "LC_INSIDE_EMACS=%s,comint" emacs-version))
+         process-environment))
+       (default-directory
+        (if (file-accessible-directory-p default-directory)
+            default-directory
+          "/"))
+       proc decoding encoding changed)
+    (let ((exec-path (if (and command (file-name-directory command))
+                        ;; If the command has slashes, make sure we
+                        ;; first look relative to the current directory.
+                        (cons default-directory exec-path) exec-path)))
+      (setq proc (apply 'start-file-process name buffer command switches)))
+    ;; Some file name handler cannot start a process, fe ange-ftp.
+    (unless (processp proc) (error "No process started"))
+    (let ((coding-systems (process-coding-system proc)))
+      (setq decoding (car coding-systems)
+           encoding (cdr coding-systems)))
+    ;; Even if start-file-process left the coding system for encoding data
+    ;; sent from the process undecided, we had better use the same one
+    ;; as what we use for decoding.  But, we should suppress EOL
+    ;; conversion.
+    (if (and decoding (not encoding))
+       (setq encoding (coding-system-change-eol-conversion decoding 'unix)
+             changed t))
+    (if changed
+       (set-process-coding-system proc decoding encoding))
+    proc))
+
+
+;; don't use enter for autocomplete, we use tab or something
+(define-key ac-completing-map (kbd "<return>") nil)
+(define-key ac-completing-map "\r" nil)
+
+
+;;; removed from (defun prog-mode-defaults ()
+;;
+;;(setq ac-sources (delq 'ac-source-dictionary ac-sources))
+
+
+
+
+
+
+
 ;; git version of gnus
 ;; (add-to-list 'load-path "~/.emacs.d/src/gnus/lisp")
 ;; (eval-after-load "info"
 ;; git version of gnus
 ;; (add-to-list 'load-path "~/.emacs.d/src/gnus/lisp")
 ;; (eval-after-load "info"