fix package archives
[dot-emacs] / init.el
diff --git a/init.el b/init.el
index 412b68dda5a8a93ec4bb3333f089990ef80ef53b..4680f0674dbec6e392a7bdd6ad7dc839d4865b5d 100644 (file)
--- a/init.el
+++ b/init.el
@@ -298,9 +298,9 @@ Fourth argument TYPE is the custom option type."
   ;;             '("marmalade" .
   ;;               "http://marmalade-repo.org/packages/"))
 
   ;;             '("marmalade" .
   ;;               "http://marmalade-repo.org/packages/"))
 
-  (add-to-list 'package-archives
-               '("melpa" . "http://melpa.milkbox.net/packages/") t)
-  (add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/") t)
+  (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
+  ;; down atm 2020-08-30
+  ;;(add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/") t)
 
 
   ;; keep our init.el clean, by moving customization elisp to it's own file
 
 
   ;; keep our init.el clean, by moving customization elisp to it's own file
@@ -407,7 +407,7 @@ Fourth argument TYPE is the custom option type."
 
 ;;; readline complete fix
 
 
 ;;; readline complete fix
 
-  ;; I need this function here, where INSIDE_EMACS is replaced with RLC_INSIDE_EMACS.
+  ;; 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)
   ;; 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)
@@ -426,7 +426,7 @@ Fourth argument TYPE is the custom option type."
                      (format "COLUMNS=%d" (window-width)))
              (list "TERM=emacs"
                    (format "TERMCAP=emacs:co#%d:tc=unknown:" (window-width))))
                      (format "COLUMNS=%d" (window-width)))
              (list "TERM=emacs"
                    (format "TERMCAP=emacs:co#%d:tc=unknown:" (window-width))))
-           (list (format "RLC_INSIDE_EMACS=%s,comint" emacs-version))
+           (list (format "LC_INSIDE_EMACS=%s,comint" emacs-version))
            process-environment))
          (default-directory
            (if (file-accessible-directory-p default-directory)
            process-environment))
          (default-directory
            (if (file-accessible-directory-p default-directory)
@@ -667,6 +667,8 @@ A non-nil CURRENT-ONLY argument means save only current buffer."
     (load-theme arg t))
   (setq color-theme-is-global t)
 
     (load-theme arg t))
   (setq color-theme-is-global t)
 
+  ;; temporary, make night be default
+
   (defun toggle-night ()
     (interactive)
     (cond  ((equal (car custom-enabled-themes) 'naquadah)
   (defun toggle-night ()
     (interactive)
     (cond  ((equal (car custom-enabled-themes) 'naquadah)
@@ -751,7 +753,7 @@ A non-nil CURRENT-ONLY argument means save only current buffer."
 
   ;; Save a list of recent files visited.
   (recentf-mode 1)
 
   ;; Save a list of recent files visited.
   (recentf-mode 1)
-  (setq recentf-max-saved-items 200
+  (setq recentf-max-saved-items 400
         recentf-max-menu-items 15)
 
 
         recentf-max-menu-items 15)
 
 
@@ -854,6 +856,8 @@ A non-nil CURRENT-ONLY argument means save only current buffer."
   (eval-after-load "mu4e" '(my-mu4e-init))
 
   (setq
   (eval-after-load "mu4e" '(my-mu4e-init))
 
   (setq
+   ;; https://github.com/djcb/mu/issues/1025
+   mail-user-agent 'mu4e-user-agent
    ;; common to gnus. default sendmail-query-once asks us, then sets this via customize.
    send-mail-function (quote sendmail-send-it)
    ;; use the standard imap folders
    ;; common to gnus. default sendmail-query-once asks us, then sets this via customize.
    send-mail-function (quote sendmail-send-it)
    ;; use the standard imap folders
@@ -879,6 +883,12 @@ A non-nil CURRENT-ONLY argument means save only current buffer."
    mu4e-cache-maildir-list t
    ;; default is 8, way too small for my big monitors
    mu4e-headers-visible-lines 50
    mu4e-cache-maildir-list t
    ;; default is 8, way too small for my big monitors
    mu4e-headers-visible-lines 50
+   message-sendmail-envelope-from 'header
+   ;; trying this out
+   ;;mu4e-view-use-gnus t
+   ;; had problems where mu4e and gnus would hang verifying signatures, gnus man
+   ;; said this should help, but it didnt work. they still got verified.
+   ;; mm-verify-option 'never
    )
 
   ;; fucks up reading unread bookmark. when that is fixed, enable it
    )
 
   ;; fucks up reading unread bookmark. when that is fixed, enable it
@@ -904,7 +914,7 @@ A non-nil CURRENT-ONLY argument means save only current buffer."
         )))
   (add-hook 'mu4e-view-mode-hook 'my-decrypt)
 
         )))
   (add-hook 'mu4e-view-mode-hook 'my-decrypt)
 
-  (defun mu-set-from-name (regexes)
+  (defun iank-set-from-name (regexes)
     "If we find an address matching regex, then set that address as the to,
 and whatever was used"
     (when mu4e-compose-parent-message
     "If we find an address matching regex, then set that address as the to,
 and whatever was used"
     (when mu4e-compose-parent-message
@@ -914,17 +924,25 @@ and whatever was used"
                 regexes (cdr regexes)
                 found (mu4e-message-contact-field-matches
                        mu4e-compose-parent-message :to re)))
                 regexes (cdr regexes)
                 found (mu4e-message-contact-field-matches
                        mu4e-compose-parent-message :to re)))
-        (when found (setq user-mail-address (cdr found)
-                          user-full-name (car found)))
+        (when found
+          (setq user-full-name (car found))
+          ;; we get an error unless we do this. that is a bug. I could
+          ;; send a patch...  also a bug: setting message-from-style nil
+          ;; doesnt work in mu4e unless user-full-name is also nil.
+          (unless user-full-name
+            (setq message-from-style nil))
+          (setq user-mail-address (cdr found)
+                mail-signature nil))
         found)))
         found)))
-  (defun mu-set-from (regexes)
+  (defun iank-set-from (regexes)
     "If we find an address matching regex, then set that address as the to,
 and Ian Kelling as the name"
     (when mu4e-compose-parent-message
       (let ((found nil))
         (while (and regexes (not found))
           (setq re (car regexes)
     "If we find an address matching regex, then set that address as the to,
 and Ian Kelling as the name"
     (when mu4e-compose-parent-message
       (let ((found nil))
         (while (and regexes (not found))
           (setq re (car regexes)
-                regexes (cdr regexes)
+                sig (cadr regexes)
+                regexes (cddr regexes)
                 found (cdr (mu4e-message-contact-field-matches
                             mu4e-compose-parent-message :to re))))
         (when found (setq user-mail-address found
                 found (cdr (mu4e-message-contact-field-matches
                             mu4e-compose-parent-message :to re))))
         (when found (setq user-mail-address found
@@ -932,16 +950,6 @@ and Ian Kelling as the name"
         found)))
 
 
         found)))
 
 
-  (defun my-mu4e-to-fsf ()
-    "inspired by mu4e info manual, search for mu4e-compose-pre-hook."
-    (cond
-     ((mu-set-from '("iank@fsf.org"
-                     "iank@gnu.org")))
-     ((setq user-mail-address "iank@fsf.org"
-            user-full-name "Ian Kelling"))))
-
-
-  ;; on first run   mkdir -p /nocow/user/.mufsf; mu index --maildir=/nocow/user/fsfmd
   (defun mu-exit-wait ()
     (interactive)
     ;; taken from the mu source
   (defun mu-exit-wait ()
     (interactive)
     ;; taken from the mu source
@@ -957,22 +965,13 @@ and Ian Kelling as the name"
     (my-mu4e-commmon)
     (setq
      user-mail-address "iank@fsf.org"
     (my-mu4e-commmon)
     (setq
      user-mail-address "iank@fsf.org"
+     iank-user-mail-address user-mail-address
      ;; WARNING: be careful editing this, there needs to be a space after --, and my editor
      ;; and git will automatically remove it unless i manually disable it.
      ;; WARNING: be careful editing this, there needs to be a space after --, and my editor
      ;; and git will automatically remove it unless i manually disable it.
-     mail-signature "
-
--- 
-Ian Kelling | Senior Systems Administrator, Free Software Foundation
-GPG Key: B125 F60B 7B28 7FF6 A2B7  DF8F 170A F0E2 9542 95DF
-https://fsf.org | https://gnu.org
-"
-
-     mu4e-user-mail-address-list '("iank@fsf.org"
-                                   "iank@gnu.org")
+     mail-signature fsf-sig
      ) ;; end setq
      ) ;; end setq
-    (add-hook 'mu4e-compose-pre-hook 'my-mu4e-to-fsf)
-    (remove-hook 'mu4e-compose-pre-hook 'my-mu4e-to)
-    (mu4e)) ;; end defun fsf-mu4e
+    (add-hook 'mu4e-compose-pre-hook 'my-mu4e-to)
+    (mu4e))
 
 
 
 
 
 
@@ -1336,7 +1335,8 @@ https://fsf.org | https://gnu.org
   ;;(require 'csv-mode)
   ;;(add-to-list 'auto-mode-alist '("\\.[Cc][Ss][Vv]\\'" . csv-mode))
 
   ;;(require 'csv-mode)
   ;;(add-to-list 'auto-mode-alist '("\\.[Cc][Ss][Vv]\\'" . csv-mode))
 
-  (add-hook 'outline-minor-mode-hook 'outshine-mode)
+  ;; disabled temporarily
+  ;;(add-hook 'outline-minor-mode-hook 'outshine-mode)
 
   (setq org-caldav-url "https://cal.iankelling.org"
         org-caldav-calendar-id "ian"
 
   (setq org-caldav-url "https://cal.iankelling.org"
         org-caldav-calendar-id "ian"
@@ -1551,8 +1551,15 @@ https://fsf.org | https://gnu.org
   (setq tramp-default-method "ssh")
 ;;; misc general settings
 
   (setq tramp-default-method "ssh")
 ;;; misc general settings
 
+  ;; from tramp manual, use the same ssh controlmaster. I was having problems with
+  ;; tramp prompting me for a username and pass.
+  (customize-set-variable 'tramp-use-ssh-controlmaster-options nil)
+
   (setq
    auto-revert-interval 2
   (setq
    auto-revert-interval 2
+   ;; fix eof end of file newline
+   mode-require-final-newline t
+   require-final-newline t
    auto-revert-verbose nil
    auto-revert-remote-files t)
 
    auto-revert-verbose nil
    auto-revert-remote-files t)
 
@@ -1575,8 +1582,6 @@ https://fsf.org | https://gnu.org
   ;; give us a shell to start instead of scratch
   ;;(setq initial-buffer-choice (lambda () (new-shell)))
 
   ;; give us a shell to start instead of scratch
   ;;(setq initial-buffer-choice (lambda () (new-shell)))
 
-  ;; disable this nasty function, as I always use a gui
-  (defun suspend-frame() (interactive))
 
   ;; Seed the random-number generator
   (random t)
 
   ;; Seed the random-number generator
   (random t)
@@ -1584,6 +1589,14 @@ https://fsf.org | https://gnu.org
   ;; easier to remember than keybinds
   (defalias 'scrypt 'mml-secure-message-encrypt-pgpmime)
   (defalias 'sign 'mml-secure-message-sign-pgpmime)
   ;; easier to remember than keybinds
   (defalias 'scrypt 'mml-secure-message-encrypt-pgpmime)
   (defalias 'sign 'mml-secure-message-sign-pgpmime)
+  ;; otherwise we get error on sending:
+  ;; mml-secure-epg-sign: Couldn’t find any signer names; try setting `mml-secure-smime-sign-with-sender'.
+  ;; i dunno why sign+encrypt doesnt cause this, seems kinda dumb,
+  ;;
+  (setq mml-secure-openpgp-sign-with-sender t)
+  ;; i dun use smime, the smime signing fails complaining it doesnt have
+  ;; my key. todo: learn about smime
+  (setq mml-secure-smime-sign-with-sender t)
   (defun encrypt ()
     (interactive)
     (mml-secure-message-encrypt-pgpmime 'dontsign))
   (defun encrypt ()
     (interactive)
     (mml-secure-message-encrypt-pgpmime 'dontsign))
@@ -1956,6 +1969,8 @@ Go to the next directory based on where the cursor is."
         org-extend-today-until 0
         org-startup-truncated nil
         org-clock-persist t
         org-extend-today-until 0
         org-startup-truncated nil
         org-clock-persist t
+        org-use-sub-superscripts "{}"
+        org-export-with-sub-superscripts nil
         org-clock-mode-line-total 'today
         ;; global STYLE property values for completion
         org-global-properties (quote (("STYLE_ALL" . "habit")))
         org-clock-mode-line-total 'today
         ;; global STYLE property values for completion
         org-global-properties (quote (("STYLE_ALL" . "habit")))
@@ -2135,6 +2150,12 @@ indent yanked text (with prefix arg don't indent)."
 
 
 ;;; shell mode
 
 
 ;;; shell mode
+
+
+  ;;  # eval: (outline-minor-mode)
+  ;; # outline-regexp: "\\( *\\)# [*]\\{1,8\\} "
+
+
   ;; avoid stupid git crap like "warning, terminal not fully functional"
   (setenv "PAGER" "cat")
   ;; don't store successive duplicates in comint command history
   ;; avoid stupid git crap like "warning, terminal not fully functional"
   (setenv "PAGER" "cat")
   ;; don't store successive duplicates in comint command history
@@ -2292,9 +2313,16 @@ indent yanked text (with prefix arg don't indent)."
   (defun chirp()
     (interactive)
     (setq vol 50)
   (defun chirp()
     (interactive)
     (setq vol 50)
-    (when (string= (system-name) "tp") (setq vol 40))
-    (start-process-shell-command "ignoreme" nil (format "mpv --no-terminal --vo=null --volume=%d /a/bin/data/bird.mp3" vol)))
+    (when (string= (system-name) "kd") (setq vol 80))
+    ;; speed is there so i can adjust and make it go slow so it plays long enough to adjust in pavucontrol
+    (start-process-shell-command "ignoreme" nil (format "mpv --speed=1 --no-terminal --vo=null --volume=%d /a/bin/data/bird.mp3" vol)))
   ;; from https://www.emacswiki.org/emacs/ErcSound
   ;; from https://www.emacswiki.org/emacs/ErcSound
+  (defun chirp-slow()
+    (interactive)
+    (setq vol 50)
+    (when (string= (system-name) "tp") (setq vol 80))
+    ;; speed is there so i can adjust and make it go slow so it plays long enough to adjust in pavucontrol
+    (start-process-shell-command "ignoreme" nil (format "mpv --speed=.2 --no-terminal --vo=null --volume=%d /a/bin/data/bird.mp3" vol)))
 
   (defun erc-my-privmsg-sound (proc parsed)
     (let* ((tgt (car (erc-response.command-args parsed)))
 
   (defun erc-my-privmsg-sound (proc parsed)
     (let* ((tgt (car (erc-response.command-args parsed)))
@@ -2319,9 +2347,9 @@ indent yanked text (with prefix arg don't indent)."
    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
+   ;; defaults minus fill. todo: modify the list instead of specifying it explicitly in case the defaults change
    erc-modules
    erc-modules
-     '(autojoin button completion irccontrols list match menu move-to-prompt netsplit networks noncommands readonly ring stamp track)
+   '(autojoin button completion irccontrols list match menu move-to-prompt netsplit networks noncommands readonly ring stamp track)
    )
 
 
    )
 
 
@@ -2348,8 +2376,11 @@ indent yanked text (with prefix arg don't indent)."
   (dolist
       (r `(
            (?i (file . ,"~/.emacs.d/init.el"))
   (dolist
       (r `(
            (?i (file . ,"~/.emacs.d/init.el"))
-           (?w (file . ,"/a/work.org"))
+           (?o (file . ,"/a/work.org"))
            (?t (file . ,"/a/t.org"))
            (?t (file . ,"/a/t.org"))
+           (?s (file . ,"/usr/share/doc/exim4-base/spec.txt.gz"))
+           (?w (file . ,"/p/w.org"))
+           (?k (file . ,"/a/bin/ds/Arduino/Model01-Firmware/Model01-Firmware.ino"))
            (?x (file . ,"/a/x.txt"))
            ))
     (set-register (car r) (cadr r)))
            (?x (file . ,"/a/x.txt"))
            ))
     (set-register (car r) (cadr r)))
@@ -2418,7 +2449,7 @@ indent yanked text (with prefix arg don't indent)."
 
 ;;;; single/special keys
 ;;;;; tab - isearch
 
 ;;;; single/special keys
 ;;;;; tab - isearch
-  (define-key isearch-mode-map (kbd "<tab>") 'isearch-query-replace)
+  (define-key isearch-mode-map (kbd "TAB") 'isearch-query-replace)
 
 ;;;;; f12 - isearch-forward
   ;; explained in http://stackoverflow.com/questions/7411920/how-to-bind-search-and-search-repeat-to-c-f-in-emacs
 
 ;;;;; f12 - isearch-forward
   ;; explained in http://stackoverflow.com/questions/7411920/how-to-bind-search-and-search-repeat-to-c-f-in-emacs
@@ -2472,7 +2503,10 @@ indent yanked text (with prefix arg don't indent)."
   (global-set-key (kbd "<home>") 'back-to-indentation-or-beginning)
 
 ;;;;; s-tab - indent-buffer
   (global-set-key (kbd "<home>") 'back-to-indentation-or-beginning)
 
 ;;;;; s-tab - indent-buffer
+  ;; graphical
   (global-set-key (kbd "<S-iso-lefttab>") 'indent-buffer)
   (global-set-key (kbd "<S-iso-lefttab>") 'indent-buffer)
+  ;; terminal
+  (global-set-key (kbd "<backtab>") 'indent-buffer)
 ;;;;; s-delete - send-shell
 
   (global-set-key (kbd "<S-delete>") 'send-shell)
 ;;;;; s-delete - send-shell
 
   (global-set-key (kbd "<S-delete>") 'send-shell)
@@ -2656,11 +2690,12 @@ modes like org-mode which have their own yank function."
   ;; stop splitting windows verticallly when I open a buffer or shell
   (setq split-height-threshold nil)
 
   ;; stop splitting windows verticallly when I open a buffer or shell
   (setq split-height-threshold nil)
 
-;;;;; s-left arrow - shell
-  (global-set-key (kbd "<S-left>") 'shell-wrap)
-  (add-hook 'org-mode-hook
-            (lambda ()
-              (define-key org-mode-map (kbd "<S-left>") nil)))
+;;;;; s-left arrow - ---
+  ;; cant be used in terminal
+  ;; When I had a binding, i did this so org-mode wouldnt clobber it
+  ;; (add-hook 'org-mode-hook
+  ;;           (lambda ()
+  ;;             (define-key org-mode-map (kbd "<S-left>") nil)))
 
 ;;;;; s-right arrow - keyboard-yank-primary
   (defun keyboard-yank-primary ()
 
 ;;;;; s-right arrow - keyboard-yank-primary
   (defun keyboard-yank-primary ()
@@ -2706,7 +2741,7 @@ modes like org-mode which have their own yank function."
   ;; kp-enter is shift return in terminal
   (global-set-key (kbd "<kp-enter>") 'flyspell-auto-correct-previous-word)
 
   ;; kp-enter is shift return in terminal
   (global-set-key (kbd "<kp-enter>") 'flyspell-auto-correct-previous-word)
 
-;;;;; s-down arrow - my-contract-region
+;;;;; s-up arrow - my-contract-region
   (global-set-key (kbd "<S-up>") 'my-contract-region)
 ;;;;; c-up/down move 8 lines
 
   (global-set-key (kbd "<S-up>") 'my-contract-region)
 ;;;;; c-up/down move 8 lines
 
@@ -2765,16 +2800,6 @@ modes like org-mode which have their own yank function."
 
 ;;;; left primary
 
 
 ;;;; left primary
 
-;;;;; C-2 copy-symbol
-
-  (global-unset-key (kbd "C-2"))
-  (defun copy-symbol (&optional arg)
-    "Copy symbol at point into kill-ring"
-    (interactive "P")
-    (kill-new (thing-at-point 'symbol)))
-
-  (global-set-key (kbd "C-2") 'copy-symbol)
-
 ;;;;; M-2 shell-cd-to-file
 
 
 ;;;;; M-2 shell-cd-to-file
 
 
@@ -2788,13 +2813,18 @@ modes like org-mode which have their own yank function."
         (message "%s" "shell-cd-to-file: buffer has no file name"))))
   (global-set-key (kbd "M-2") 'shell-cd-to-file)
 
         (message "%s" "shell-cd-to-file: buffer has no file name"))))
   (global-set-key (kbd "M-2") 'shell-cd-to-file)
 
-;;;;; C-M-2 ---
-                                        ; todo. whats going on here?
+;;;;; C-M-2 copy-symbol
   (global-unset-key (kbd "C-M-2"))
   (global-unset-key (kbd "C-M-2"))
+  (defun copy-symbol (&optional arg)
+    "Copy symbol at point into kill-ring"
+    (interactive "P")
+    (kill-new (thing-at-point 'symbol)))
 
 
-;;;;; C-3 dot-mode-execute
+  (global-set-key (kbd "C-M-2") 'copy-symbol)
 
 
-  (global-set-key (kbd "C-3") 'dot-mode-execute)
+;;;;; M-3 dot-mode-execute
+
+  (global-set-key (kbd "M-3") 'dot-mode-execute)
 
 ;;;;; C-M-3 recenter-top-bottom
 
 
 ;;;;; C-M-3 recenter-top-bottom
 
@@ -2817,13 +2847,13 @@ modes like org-mode which have their own yank function."
 
   (global-set-key (kbd "C-M-q") 'quoted-insert)
 
 
   (global-set-key (kbd "C-M-q") 'quoted-insert)
 
-;;;;; C-w
+;;;;; C-w counsel-find-file
 
   (global-set-key (kbd "C-w") 'counsel-find-file)
 
 
   (global-set-key (kbd "C-w") 'counsel-find-file)
 
-;;;;; M-w org-clock-in
+;;;;; M-w shell
 
 
-  (global-set-key (kbd "M-w") 'org-clock-in)
+  (global-set-key (kbd "M-w") 'shell-wrap)
 
 ;;;;; C-e copy-line
 
 
 ;;;;; C-e copy-line
 
@@ -2925,6 +2955,11 @@ modes like org-mode which have their own yank function."
   (global-set-key (kbd "C-M-s") 'split-window-vertically)
 
 ;;;;; C-d - C-c prefix
   (global-set-key (kbd "C-M-s") 'split-window-vertically)
 
 ;;;;; C-d - C-c prefix
+
+;;;;; M-d - run
+
+  (global-set-key (kbd "M-d") 'run)
+
 ;;;;; C-M-d - swap buffer across windows
   ;; from http://www.emacswiki.org/emacs/TransposeWindows
 
 ;;;;; C-M-d - swap buffer across windows
   ;; from http://www.emacswiki.org/emacs/TransposeWindows
 
@@ -2954,7 +2989,7 @@ modes like org-mode which have their own yank function."
 
   (global-set-key (kbd "C-M-d") 'swap-buffers-in-windows)
 
 
   (global-set-key (kbd "C-M-d") 'swap-buffers-in-windows)
 
-;;;;; C-f] - kill-whole-line
+;;;;; C-f - kill-whole-line
 
   (global-set-key (kbd "C-f") 'kill-whole-line-wrapper)
   (defun kill-whole-line-wrapper (&optional arg)
 
   (global-set-key (kbd "C-f") 'kill-whole-line-wrapper)
   (defun kill-whole-line-wrapper (&optional arg)
@@ -2983,10 +3018,7 @@ modes like org-mode which have their own yank function."
               (define-key org-mode-map (kbd "C-M-f") 'org-kill-line)))
 
   (global-set-key (kbd "C-M-f") 'kill-line)
               (define-key org-mode-map (kbd "C-M-f") 'org-kill-line)))
 
   (global-set-key (kbd "C-M-f") 'kill-line)
-;;;;; C-g - cancel / other window
-
-  (global-set-key (kbd "C-g") 'other-window)
-
+;;;;; C-g - keyboard-quit
 ;;;;; M-g - abort-recursive-edit
 
   (global-set-key (kbd "M-g") 'abort-recursive-edit)
 ;;;;; M-g - abort-recursive-edit
 
   (global-set-key (kbd "M-g") 'abort-recursive-edit)
@@ -2996,8 +3028,12 @@ modes like org-mode which have their own yank function."
   (global-set-key (kbd "C-M-g") 'mu4e)
 
 ;;;;; C-z - undo-only
   (global-set-key (kbd "C-M-g") 'mu4e)
 
 ;;;;; C-z - undo-only
-
   (global-set-key (kbd "C-z") 'undo-tree-undo)
   (global-set-key (kbd "C-z") 'undo-tree-undo)
+;;;;; C-M-z - suspend-frame
+  (global-set-key (kbd "C-z") 'suspend-frame)
+  ;; previously, i meant to only use gui and ran this to
+  ;; be sure it never got ran
+  ;;(defun suspend-frame() (interactive))
 
 ;;;;; C-x - kill-region
 
 
 ;;;;; C-x - kill-region
 
@@ -3042,9 +3078,10 @@ modes like org-mode which have their own yank function."
               (define-key c-mode-base-map (kbd "<deletechar>") 'c-electric-delete-forward)))
 
 
               (define-key c-mode-base-map (kbd "<deletechar>") 'c-electric-delete-forward)))
 
 
-;;;;; M-c - org-capture
+;;;;; M-c - delete-other-windows
 
 
-  (define-key global-map "\M-c" 'org-capture)
+  ;; todo, consider binding/using org-capture
+  (define-key global-map "\M-c" 'delete-other-windows)
 
 ;;;;; C-M-c - copy-to-register
 
 
 ;;;;; C-M-c - copy-to-register
 
@@ -3081,9 +3118,9 @@ modes like org-mode which have their own yank function."
 
   (global-set-key (kbd "C-M-v") 'yank-pop)
 
 
   (global-set-key (kbd "C-M-v") 'yank-pop)
 
-;;;;; C-b - delete-other-windows
+;;;;; C-b - other-window
 
 
-  (global-set-key (kbd "C-b") 'delete-other-windows)
+  (global-set-key (kbd "C-b") 'other-window)
 
 ;;;;; M-b - isearch-backward-current-symbol
 
 
 ;;;;; M-b - isearch-backward-current-symbol
 
@@ -3162,17 +3199,9 @@ modes like org-mode which have their own yank function."
   (global-set-key (kbd "<C-M-backspace>") 'backward-kill-sexp)
 
 ;;;; right primary
   (global-set-key (kbd "<C-M-backspace>") 'backward-kill-sexp)
 
 ;;;; right primary
-;;;;; C-* - split-window-horizontally
-
-  (global-set-key (kbd "C-*") 'split-window-horizontally)
-
-;;;;; C-M-* - calc-dispatch
-
-  (global-set-key (kbd "C-M-*") 'calc-dispatch)
-
-;;;;; C-9 - delete-window-or-exit
+;;;;; M-8 - delete-window-or-exit
 
 
-  (global-set-key (kbd "C-9") 'delete-window-or-exit)
+  (global-set-key (kbd "M-8") 'delete-window-or-exit)
 
   (defun delete-window-or-exit ()
     "Delete window or exit emacs."
 
   (defun delete-window-or-exit ()
     "Delete window or exit emacs."
@@ -3182,6 +3211,12 @@ modes like org-mode which have their own yank function."
             (progn (basic-save-buffer) (delete-frame))
           (save-buffers-kill-terminal t))))
 
             (progn (basic-save-buffer) (delete-frame))
           (save-buffers-kill-terminal t))))
 
+;;;;; C-* - split-window-horizontally
+  (global-set-key (kbd "C-*") 'split-window-horizontally)
+;;;;; C-M-* - calc-dispatch
+
+  (global-set-key (kbd "C-M-*") 'calc-dispatch)
+
 ;;;;; M-9 - kill-buffer
 
   (defun kill-buffer-no-ido ()
 ;;;;; M-9 - kill-buffer
 
   (defun kill-buffer-no-ido ()
@@ -3220,7 +3255,15 @@ modes like org-mode which have their own yank function."
       ))
 
 ;;;;; C-i -
       ))
 
 ;;;;; C-i -
-  (define-key input-decode-map [?\C-i] [C-i])
+  ;; todo: try making use
+  ;; this is the key in terminal
+  ;;M-[ 4 d is undefined
+
+  ;; previously had this for enhancing graphical keybinds,
+  ;; but afaik its no help since i want terminal to work
+  ;; the same.
+  ;;  (define-key input-decode-map [?\C-i] [C-i])
+
 ;;;;; C-M-i - query-replace-regexp
 
   (global-set-key (kbd "C-M-i") 'query-replace-regexp)
 ;;;;; C-M-i - query-replace-regexp
 
   (global-set-key (kbd "C-M-i") 'query-replace-regexp)
@@ -3311,8 +3354,10 @@ modes like org-mode which have their own yank function."
     (move-beginning-of-line 2))
   (global-set-key (kbd "C-M-;") 'comment-current-line-dwim)
 
     (move-beginning-of-line 2))
   (global-set-key (kbd "C-M-;") 'comment-current-line-dwim)
 
-;;;;; C-m
-  (define-key input-decode-map [?\C-m] [C-m])
+;;;;; C-m - ---
+  ;; terminal/console needs this. otherwise, we could do this
+  ;; to make C-m be a valid key in graphical mode.
+  ;;  (define-key input-decode-map [?\C-m] [C-m])
 ;;;;; C-M-m - recursive grep
 
   (define-key global-map (kbd "C-M-m") 'rgrep)
 ;;;;; C-M-m - recursive grep
 
   (define-key global-map (kbd "C-M-m") 'rgrep)
@@ -3329,32 +3374,12 @@ modes like org-mode which have their own yank function."
   (global-set-key (kbd "C-M-,") 'find-file-in-project)
 
 ;;;;; C-. - find recent file
   (global-set-key (kbd "C-M-,") 'find-file-in-project)
 
 ;;;;; C-. - find recent file
-  ;;  Taken from starter kit.
-
-  (defun recentf-ido-find-file ()
-    "Find a recent file using Ido."
-    (interactive)
-    (let* ((file-assoc-list
-            (mapcar (lambda (x)
-                      (cons (file-name-nondirectory x)
-                            x))
-                    recentf-list))
-           (filename-list
-            (remove-duplicates (mapcar #'car file-assoc-list)
-                               :test #'string=))
-           (filename (ido-completing-read "Choose recent file: "
-                                          filename-list
-                                          nil
-                                          t)))
-      (when filename
-        (find-file (cdr (assoc filename
-                               file-assoc-list))))))
 
   (add-hook 'flyspell-mode-hook
             (lambda () (define-key flyspell-mode-map (kbd "C-.") nil)))
   (define-key dot-mode-map (kbd "C-.") nil)
 
   (add-hook 'flyspell-mode-hook
             (lambda () (define-key flyspell-mode-map (kbd "C-.") nil)))
   (define-key dot-mode-map (kbd "C-.") nil)
-  (define-key terminal-key-map (kbd "4c") 'recentf-ido-find-file)
-  (global-set-key (kbd "C-.") 'recentf-ido-find-file)
+  (define-key terminal-key-map (kbd "4c") 'counsel-recentf)
+  (global-set-key (kbd "C-.") 'counsel-recentf)
   (add-hook 'php-mode-hook
             (lambda () (define-key php-mode-map (kbd "C-.") nil)))
 
   (add-hook 'php-mode-hook
             (lambda () (define-key php-mode-map (kbd "C-.") nil)))
 
@@ -3407,10 +3432,6 @@ modes like org-mode which have their own yank function."
 
 
 
 
 
 
-;;;;; C-8 - calc-embedded-word
-
-  (global-set-key (kbd "C-8") 'calc-embedded-word)
-
 ;;;;; C-up-arrow - org prev headline
 
   ;; disabled just because i don't want to accidentally hit it
 ;;;;; C-up-arrow - org prev headline
 
   ;; disabled just because i don't want to accidentally hit it
@@ -3582,6 +3603,10 @@ modes like org-mode which have their own yank function."
 
   (global-set-key (kbd "C-M-6") 'insert-small-copyright)
 
 
   (global-set-key (kbd "C-M-6") 'insert-small-copyright)
 
+;;;;; M-7 - calc-embedded-word
+
+  (global-set-key (kbd "M-7") 'calc-embedded-word)
+
 ;;;;; C-M-7 - insert-full-copyright
 
   (defun insert-full-copyright ()
 ;;;;; C-M-7 - insert-full-copyright
 
   (defun insert-full-copyright ()