diff options
-rw-r--r-- | LaunchAgents/gnu.emacs.daemon.plist | 26 | ||||
-rw-r--r-- | LaunchAgents/net.syncthing.syncthing.plist | 30 | ||||
-rwxr-xr-x | hooks/post-up/emacs | 6 | ||||
-rwxr-xr-x | hooks/post-up/zsh | 22 | ||||
-rw-r--r-- | host-ap-spotcap.local/config/zsh/zshenv.local | 2 | ||||
-rw-r--r-- | host-prefect/config/zsh/zshenv.local | 1 | ||||
-rw-r--r-- | npmrc | 1 | ||||
-rw-r--r-- | tag-emacs/emacs.d/init.org | 290 | ||||
-rw-r--r-- | tag-karabiner/karabiner.d/configuration/karabiner.json | 102 | ||||
-rwxr-xr-x[-rw-r--r--] | tag-ssh/ssh/rc | 2 | ||||
-rw-r--r-- | tag-zsh/config/zsh/zshenv | 26 | ||||
-rw-r--r-- | tag-zsh/config/zsh/zshrc | 154 |
12 files changed, 329 insertions, 333 deletions
diff --git a/LaunchAgents/gnu.emacs.daemon.plist b/LaunchAgents/gnu.emacs.daemon.plist index ecce7db7..873e28ff 100644 --- a/LaunchAgents/gnu.emacs.daemon.plist +++ b/LaunchAgents/gnu.emacs.daemon.plist @@ -2,18 +2,18 @@ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> - <key>ServiceDescription</key> - <string>Gnu Emacs Daemon</string> - <key>ProgramArguments</key> - <array> - <string>/Applications/Emacs.app/Contents/MacOS/Emacs</string> - <string>--daemon</string> - </array> - <key>RunAtLoad</key> - <true/> - <key>WorkingDirectory</key> - <string>/Users/alan</string> - <key>Label</key> - <string>gnu.emacs.daemon</string> + <key>ServiceDescription</key> + <string>Gnu Emacs Daemon</string> + <key>ProgramArguments</key> + <array> + <string>/Applications/Emacs.app/Contents/MacOS/Emacs</string> + <string>--daemon</string> + </array> + <key>RunAtLoad</key> + <true/> + <key>WorkingDirectory</key> + <string>/Users/alan</string> + <key>Label</key> + <string>gnu.emacs.daemon</string> </dict> </plist> diff --git a/LaunchAgents/net.syncthing.syncthing.plist b/LaunchAgents/net.syncthing.syncthing.plist deleted file mode 100644 index 1fcd1281..00000000 --- a/LaunchAgents/net.syncthing.syncthing.plist +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> - <dict> - <key>Label</key> - <string>net.syncthing.syncthing</string> - - <key>ProgramArguments</key> - <array> - <string>/Users/apearce/bin/syncthing</string> - </array> - - <key>EnvironmentVariables</key> - <dict> - <key>HOME</key> - <string>/Users/apearce</string> - <key>STNORESTART</key> - <string>1</string> - </dict> - - <key>KeepAlive</key> - <true/> - - <key>LowPriorityIO</key> - <true/> - - <key>ProcessType</key> - <string>Background</string> - </dict> -</plist> diff --git a/hooks/post-up/emacs b/hooks/post-up/emacs index aad74be7..cb9c0916 100755 --- a/hooks/post-up/emacs +++ b/hooks/post-up/emacs @@ -2,8 +2,8 @@ if [[ -s $commands[emacs] ]] then - pushd ~/.emacs.d - emacs --batch --eval "(progn + pushd ~/.emacs.d + emacs --batch --eval "(progn (setq vc-follow-symlinks nil) (find-file \"init.org\") (require 'ob-tangle) @@ -11,5 +11,5 @@ then (byte-compile-file \"init.el\") (load-file \"init.el\") )" - popd + popd fi diff --git a/hooks/post-up/zsh b/hooks/post-up/zsh index b7a7d4a2..3eef6e51 100755 --- a/hooks/post-up/zsh +++ b/hooks/post-up/zsh @@ -4,26 +4,26 @@ ZDOTDIR="${XDG_CONFIG_HOME:=~/.config}/zsh" pushd $ZDOTDIR for f in z*(-.) do - if [[ -e .$f ]] - then - if [[ ! -h .$f ]] - then - echo ".$f already exists as a regular file, ignoring" - fi - else - ln -s $f .$f - fi + if [[ -e .$f ]] + then + if [[ ! -h .$f ]] + then + echo ".$f already exists as a regular file, ignoring" + fi + else + ln -s $f .$f + fi done popd if [[ ! -d ~/.cache/zsh ]] then - mkdir -p ~/.cache/zsh + mkdir -p ~/.cache/zsh fi if [[ -z $commands[zplug] && ! -d ~/projects/zplug/ ]] then - git clone git://github.com/zplug/zplug ~/projects/zplug/ + git clone git://github.com/zplug/zplug ~/projects/zplug/ fi zsh -ic "zplug install" diff --git a/host-ap-spotcap.local/config/zsh/zshenv.local b/host-ap-spotcap.local/config/zsh/zshenv.local index f6881be2..55a6031d 100644 --- a/host-ap-spotcap.local/config/zsh/zshenv.local +++ b/host-ap-spotcap.local/config/zsh/zshenv.local @@ -1,5 +1,5 @@ # -*- mode: sh; -*- if [[ -e $HOME/.nix-profile/etc/profile.d/nix.sh ]] then - . $HOME/.nix-profile/etc/profile.d/nix.sh; + . $HOME/.nix-profile/etc/profile.d/nix.sh; fi diff --git a/host-prefect/config/zsh/zshenv.local b/host-prefect/config/zsh/zshenv.local deleted file mode 100644 index 8ed2dc3d..00000000 --- a/host-prefect/config/zsh/zshenv.local +++ /dev/null @@ -1 +0,0 @@ -PURE_PROMPT_SYMBOL='>' diff --git a/npmrc b/npmrc new file mode 100644 index 00000000..6804f657 --- /dev/null +++ b/npmrc @@ -0,0 +1 @@ +prefix = ${HOME}/.local/ \ No newline at end of file diff --git a/tag-emacs/emacs.d/init.org b/tag-emacs/emacs.d/init.org index a0d3ba92..609f85cc 100644 --- a/tag-emacs/emacs.d/init.org +++ b/tag-emacs/emacs.d/init.org @@ -322,8 +322,6 @@ configuration with crux.el :init (progn (defalias 'delete-current-buffer-file #'crux-delete-file-and-buffer) (defalias 'rename-current-buffer-file #'crux-rename-file-and-buffer))) - - #+END_SRC * Projects @@ -623,11 +621,12 @@ I like a horizonal diff setup, with everything in one frame. * Indentation Ah, a complicated topic. One day we’ll all be using elastic -tabstops. Until then, I want 4-wide tabs, and make them real tabs! +tabstops. I’ve recently switched to using two spaces, since elastic +tabstops is probably never going to happen. #+BEGIN_SRC emacs-lisp - (setq-default tab-width 4 - indent-tabs-mode t) + (setq-default tab-width 2 + indent-tabs-mode nil) #+END_SRC ** auto-indent-mode @@ -641,7 +640,7 @@ whitespace-sensitive language, of course. (setq auto-indent-key-for-end-of-line-then-newline "<C-return>" auto-indent-key-for-end-of-line-insert-char-then-newline "<C-S-return>" auto-indent-blank-lines-on-move nil - auto-indent-assign-indent-level 4 + auto-indent-assign-indent-level 2 auto-indent-backward-delete-char-behavior nil auto-indent-delete-trailing-whitespace-on-save-file t auto-indent-mode-untabify-on-yank-or-paste nil @@ -667,7 +666,7 @@ with spaces. Perfect! (use-package smart-tabs-mode :defer 1 :config (progn - (smart-tabs-insinuate 'c 'cperl 'javascript 'python) + (smart-tabs-insinuate 'c 'cperl 'python) (add-hook 'php-mode-hook (lambda () (smart-tabs-mode indent-tabs-mode))) (with-eval-after-load "align.el" @@ -820,7 +819,7 @@ point whilst I’m moving about. scroll-preserve-screen-position t mouse-wheel-scroll-amount '(1 ((shift) . 1) ((control))) split-height-threshold 80 - split-width-threshold 130 + split-width-threshold 160 frame-resize-pixelwise nil) (if (boundp 'ns-pop-up-frames) (setq ns-pop-up-frames nil)) @@ -1077,8 +1076,8 @@ helps to make documentation for other languages easier to access A nicer way to browse keybindings for major modes. #+BEGIN_SRC emacs-lisp -(use-package discover-my-major - :bind ("<f1>" . discover-my-major)) + (use-package discover-my-major + :bind ("<f1>" . discover-my-major)) #+END_SRC ** which-key @@ -1175,9 +1174,9 @@ the prompt. I don’t remember what exactly. Occasionally, I exit emacs. I should probably reduce the frequency of this. #+BEGIN_SRC emacs-lisp -(if (daemonp) - (defalias 'exit-emacs #'delete-frame) - (defalias 'exit-emacs #'save-buffers-kill-emacs)) + (if (daemonp) + (defalias 'exit-emacs #'delete-frame) + (defalias 'exit-emacs #'save-buffers-kill-emacs)) #+END_SRC ** swiper/ivy @@ -1283,15 +1282,15 @@ don’t use it directly. Setup some modes for systemd files #+BEGIN_SRC emacs-lisp -(add-to-list 'auto-mode-alist '("\\.service\\'" . conf-mode)) -(add-to-list 'auto-mode-alist '("\\.target\\'" . conf-mode)) -(add-to-list 'auto-mode-alist '("\\.socket\\'" . conf-mode)) + (add-to-list 'auto-mode-alist '("\\.service\\'" . conf-mode)) + (add-to-list 'auto-mode-alist '("\\.target\\'" . conf-mode)) + (add-to-list 'auto-mode-alist '("\\.socket\\'" . conf-mode)) #+END_SRC =direnv=’s files are basically shell scripts, it’s a nice way to set environment variables for projects. #+BEGIN_SRC emacs-lisp -(add-to-list 'auto-mode-alist '("\\.envrc\\'" . sh-mode)) + (add-to-list 'auto-mode-alist '("\\.envrc\\'" . sh-mode)) #+END_SRC Some modes that I don’t really customise much, mostly for @@ -1309,10 +1308,7 @@ configuration files. :mode (("Dockerfile\\'" . dockerfile-mode))) (use-package nix-mode - :mode (("\\.nix\\'" . nix-mode)) - :config (progn - (add-hook 'nix-mode-hook (lambda () - (setq-local indent-tabs-mode nil))))) + :mode (("\\.nix\\'" . nix-mode))) (define-derived-mode xmonad-mode haskell-mode "XM") (add-to-list 'auto-mode-alist '("xmobarrc\\'" . xmonad-mode)) @@ -1321,9 +1317,7 @@ configuration files. (use-package nginx-mode :defer t :mode (("/nginx/servers/" . nginx-mode) - ("/nginx/.*\\.d/" . nginx-mode)) - :config (progn - (setq nginx-indent-tabs-mode t))) + ("/nginx/.*\\.d/" . nginx-mode))) (use-package lua-mode :defer t) @@ -1370,9 +1364,6 @@ works really nicely. (find-file (expand-file-name "ledger/my.ledger" (projectile-project-root))) (ledger-report "Budget (Cumulative)" nil))) :config (progn - (defun setup-ledger-mode () - (setq-local indent-tabs-mode nil)) - (add-hook 'ledger-mode-hook #'setup-ledger-mode) (setq ledger-use-iso-dates t ledger-post-use-completion-engine :built-in ledger-reconcile-default-commodity "€" @@ -1399,18 +1390,16 @@ works really nicely. ** Markdown #+BEGIN_SRC emacs-lisp -(use-package markdown-mode - :defer t - :config (progn - (add-hook 'markdown-mode-hook #'turn-on-auto-fill))) + (use-package markdown-mode + :defer t + :config (progn + (add-hook 'markdown-mode-hook #'turn-on-auto-fill))) #+END_SRC ** Org Org is wünderbar. -*** TODO Check whether all this configuration is necessary or helpful. - #+BEGIN_SRC emacs-lisp (use-package org :bind (("C-c C-a" . org-agenda-list) @@ -1428,15 +1417,11 @@ Org is wünderbar. ;; ‘Remember’: new items at top org-reverse-note-order t - org-modules '(org-habit - org-protocol) + org-modules '(org-protocol) ;; Add time done to ‘done’ tasks org-log-done 'time - ;; Allow refiling into any org file - org-refile-targets '((org-agenda-files :maxlevel . 3)) - org-list-allow-alphabetical t org-adapt-indentation nil @@ -1458,15 +1443,7 @@ Org is wünderbar. org-log-into-drawer "LOGBOOK") (set-register ?o `(file . ,(expand-file-name "organiser.org" org-directory))) (add-hook 'org-mode-hook #'turn-on-auto-fill) - (org-load-modules-maybe t) - (defadvice org-clock-in (after wicked activate) - "Mark STARTED when clocked in" - (save-excursion - (catch 'exit - (org-back-to-heading t) - (if (looking-at org-outline-regexp) (goto-char (1- (match-end 0)))) - (if (looking-at (concat " +" org-todo-regexp "\\( +\\|[ \t]*$\\)")) - (org-todo "STARTED"))))) + (org-load-modules-maybe t))) #+END_SRC **** org-babel @@ -1477,13 +1454,13 @@ to have my =ledger= setup in an org file with some graph processing with R or something. #+BEGIN_SRC emacs-lisp -(use-package ob-core - :defer t - :ensure nil - :config (org-babel-do-load-languages - 'org-babel-load-languages - '((ledger . t) - (sh . t)))) + (use-package ob-core + :defer t + :ensure nil + :config (org-babel-do-load-languages + 'org-babel-load-languages + '((ledger . t) + (sh . t)))) #+END_SRC **** org-journal @@ -1542,7 +1519,7 @@ I can use this to keep a journal. I should use it. (file-name-as-directory org-mobile-directory) org-mobile-capture-file)))) (setq org-mobile-watcher - (file-notify-add-watch org-file '(change) #'ap/org-mobile-pull)))))))) + (file-notify-add-watch org-file '(change) #'ap/org-mobile-pull)))))) #+END_SRC **** org-caldav @@ -1565,6 +1542,20 @@ write to the Android calendar, and then for DAVDroid to sync with the server. org-icalendar-alarm-time 60))) #+END_SRC +**** org-page + +I would like to convert my website from using hugo to something else +that I can work with nicely from inside Emacs. I wonder if org-page +will do the trick. + +#+BEGIN_SRC emacs-lisp + (use-package org-page + :config (progn + (setq op/site-domain "https://alanpearce.uk/" + op/repository-directory "~/projects/alanpearce/" + op/personal-github-link "https://github.com/alanpearce"))) +#+END_SRC + * Music Emacs actually supports playing music via mpd. @@ -1638,8 +1629,7 @@ A nice completion backend for programming modes. *** All Lisp modes don’t seem to have a common ancestor. So I made a custom -hook which I trigger in every lispy-mode. Of course, no tabs in -lisps. Even I understand that. +hook which I trigger in every lispy-mode. #+BEGIN_SRC emacs-lisp (defcustom lisp-mode-common-hook nil @@ -1648,8 +1638,7 @@ lisps. Even I understand that. :group 'lisp) (defun ap/lisp-setup () - (run-hooks 'lisp-mode-common-hook) - (setq indent-tabs-mode nil)) + (run-hooks 'lisp-mode-common-hook)) #+END_SRC **** Redshank @@ -1671,8 +1660,8 @@ Customise the modeline-display of =emacs-lisp-mode=. Then make sure it runs the common lisp hooks. #+BEGIN_SRC emacs-lisp -(add-hook 'emacs-lisp-mode-hook #'ap/lisp-setup) -(add-hook 'emacs-lisp-mode-hook #'eldoc-mode) + (add-hook 'emacs-lisp-mode-hook #'ap/lisp-setup) + (add-hook 'emacs-lisp-mode-hook #'eldoc-mode) #+END_SRC Go-to function for elisp. Except it works through the entire Emacs ecosystem. @@ -1688,12 +1677,12 @@ Go-to function for elisp. Except it works through the entire Emacs ecosystem. Interactive elisp #+BEGIN_SRC emacs-lisp -(use-package ielm - :defer t - :ensure nil - :config (progn - (add-hook 'ielm-mode-hook (lambda () - (run-hooks 'lisp-mode-common-hook))))) + (use-package ielm + :defer t + :ensure nil + :config (progn + (add-hook 'ielm-mode-hook (lambda () + (run-hooks 'lisp-mode-common-hook))))) #+END_SRC *** Scheme & Lisp @@ -1715,11 +1704,11 @@ A REPL thing for Scheme. Hopefully I’ll get to use it more in the future. #+BEGIN_SRC emacs-lisp -(use-package geiser - :commands (geiser-mode - geiser - run-geiser - run-racket)) + (use-package geiser + :commands (geiser-mode + geiser + run-geiser + run-racket)) #+END_SRC **** slime @@ -1727,14 +1716,14 @@ future. A REPL thing (and more) for Lisp. #+BEGIN_SRC emacs-lisp -(use-package slime - :commands (slime) - :config (progn - (let ((ql-slime-helper (expand-file-name "~/quicklisp/slime-helper.el"))) - (if (file-exists-p ql-slime-helper) - (load ql-slime-helper)) - (slime-setup)) - (setq inferior-lisp-program (executable-find "sbcl")))) + (use-package slime + :commands (slime) + :config (progn + (let ((ql-slime-helper (expand-file-name "~/quicklisp/slime-helper.el"))) + (if (file-exists-p ql-slime-helper) + (load ql-slime-helper)) + (slime-setup)) + (setq inferior-lisp-program (executable-find "sbcl")))) #+END_SRC *** Clojure @@ -1762,21 +1751,21 @@ A REPL thing (and more) for Lisp. A REPL thing for Clojure #+BEGIN_SRC emacs-lisp -(use-package cider - :defer t - :config (progn - (setq nrepl-hide-special-buffers t) - (unbind-key "C-c C-f" cider-mode-map) - (add-hook 'cider-mode-hook #'eldoc-mode))) + (use-package cider + :defer t + :config (progn + (setq nrepl-hide-special-buffers t) + (unbind-key "C-c C-f" cider-mode-map) + (add-hook 'cider-mode-hook #'eldoc-mode))) #+END_SRC ** Auto-compile Auto-compile emacs lisp when saving. #+BEGIN_SRC emacs-lisp -(use-package auto-compile - :defer t - :init (add-hook 'emacs-lisp-mode-hook #'auto-compile-on-save-mode)) + (use-package auto-compile + :defer t + :init (add-hook 'emacs-lisp-mode-hook #'auto-compile-on-save-mode)) #+END_SRC ** cc-mode @@ -1785,16 +1774,16 @@ Although I don’t use C or C++, setting up the mode is helpful because quite a few other modes are derived from it. #+BEGIN_SRC emacs-lisp -(use-package cc-mode - :defer 5 - :init (progn - (add-hook 'c-mode-common-hook #'electric-indent-mode)) - :config (progn + (use-package cc-mode + :defer 5 + :init (progn + (add-hook 'c-mode-common-hook #'electric-indent-mode)) + :config (progn (setq c-default-style '((java-mode . "java") - (awk-mode . "awk") - (other . "k&r")) - c-basic-offset 4) - (c-set-offset 'case-label '+))) + (awk-mode . "awk") + (other . "k&r")) + c-basic-offset 4) + (c-set-offset 'case-label '+))) #+END_SRC ** quickrun @@ -1802,8 +1791,8 @@ quite a few other modes are derived from it. It’s nice to be able to quickly evaluate some code. Although I don’t really seem to use it. #+BEGIN_SRC emacs-lisp -(use-package quickrun - :bind (("C-c C-e" . quickrun))) + (use-package quickrun + :bind (("C-c C-e" . quickrun))) #+END_SRC ** Scala @@ -1845,7 +1834,6 @@ it though (fboundp #'do-it)) (do-it name))) (advice-add 'imenu-add-to-menubar :around #'js2--imenu-around) - (setq js2-skip-preprocessor-directives t) (defun ap/javascript-setup () (auto-indent-mode -1)) (defun ap/js2-prev-error () @@ -1854,7 +1842,7 @@ it though (bind-key "M-g M-n" #'js2-next-error js2-mode-map) (bind-key "M-g M-p" #'ap/js2-prev-error js2-mode-map) (add-hook 'js2-mode-hook #'ap/javascript-setup) - (setq js2-basic-offset 4 + (setq js2-basic-offset 2 js2-include-node-externs t))) #+END_SRC @@ -1919,9 +1907,9 @@ integration between the two yet. This is for HTML, since old versions of HTML were derived from SGML. #+BEGIN_SRC emacs-lisp -(use-package sgml-mode - :defer t - :config (setq sgml-basic-offset 4)) + (use-package sgml-mode + :defer t + :config (setq sgml-basic-offset 2)) #+END_SRC *** emmet-mode @@ -1949,9 +1937,9 @@ of them as well. ("/templates/.*\\.php\\'" . web-mode) ("\\.ejs\\'" . web-mode)) :config (progn - (setq web-mode-code-indent-offset 4 - web-mode-css-indent-offset 4 - web-mode-markup-indent-offset 4 + (setq web-mode-code-indent-offset 2 + web-mode-css-indent-offset 2 + web-mode-markup-indent-offset 2 web-mode-style-padding 0 web-mode-script-padding 0 web-mode-comment-style 2 @@ -1963,8 +1951,8 @@ of them as well. I derived a mode for twig, in order to use its =mode-hook=. #+BEGIN_SRC emacs-lisp -(define-derived-mode twig-mode web-mode "Twig") -(add-to-list 'auto-mode-alist '("\\.html\\.twig\\'" . twig-mode)) + (define-derived-mode twig-mode web-mode "Twig") + (add-to-list 'auto-mode-alist '("\\.html\\.twig\\'" . twig-mode)) #+END_SRC * Spelling @@ -1982,12 +1970,16 @@ I derived a mode for twig, in order to use its =mode-hook=. Make a shell-script buffer executable after saving it, if it has a shebang. #+BEGIN_SRC emacs-lisp -(add-hook 'after-save-hook - #'executable-make-buffer-file-executable-if-script-p) + (add-hook 'after-save-hook + #'executable-make-buffer-file-executable-if-script-p) -(use-package sh-script - :mode (("\\.zsh\\'" . shell-script-mode)) - :config (setq sh-shell-file "/usr/bin/env zsh")) + (use-package sh-script + :mode (("\\.zsh\\'" . shell-script-mode) + ("zshenv\\'" . shell-script-mode) + ("zshrc\\'" . shell-script-mode)) + :config (setq sh-shell-file "/usr/bin/env zsh" + sh-indentation 2 + sh-basic-offset 2)) #+END_SRC #+BEGIN_SRC emacs-lisp @@ -2081,11 +2073,11 @@ The most important one for me is JSON property alignment. I like to use the clipboard more than the primary selection in X11. #+BEGIN_SRC emacs-lisp -(setq x-select-enable-clipboard t) -(if (functionp 'x-cut-buffer-or-selection-value) - (setq interprogram-paste-function 'x-cut-buffer-or-selection-value)) -(when (boundp 'x-select-request-type) - (setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING))) + (setq x-select-enable-clipboard t) + (if (functionp 'x-cut-buffer-or-selection-value) + (setq interprogram-paste-function 'x-cut-buffer-or-selection-value)) + (when (boundp 'x-select-request-type) + (setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING))) #+END_SRC ** Selection @@ -2168,14 +2160,14 @@ cursors was one of my favourite features, so I was really happy when I saw that multiple-cursors was released for Emacs. #+BEGIN_SRC emacs-lisp -(use-package multiple-cursors - :defer 1 - :config (progn - (bind-key "C-." #'mc/mark-next-like-this) - (bind-key "C-," #'mc/mark-previous-like-this) - (bind-key "M-<f3>" #'mc/mark-all-like-this-dwim) - (bind-key "C-<f3>" #'mc/mark-more-like-this-extended) - (bind-key "C-S-L" #'mc/edit-lines))) + (use-package multiple-cursors + :defer 1 + :config (progn + (bind-key "C-." #'mc/mark-next-like-this) + (bind-key "C-," #'mc/mark-previous-like-this) + (bind-key "M-<f3>" #'mc/mark-all-like-this-dwim) + (bind-key "C-<f3>" #'mc/mark-more-like-this-extended) + (bind-key "C-S-L" #'mc/edit-lines))) #+END_SRC ** paredit @@ -2244,8 +2236,8 @@ Move between instances of a symbol Transposing lines, made easier. #+BEGIN_SRC emacs-lisp -(use-package move-text - :config (move-text-default-bindings)) + (use-package move-text + :config (move-text-default-bindings)) #+END_SRC ** undo-tree @@ -2254,21 +2246,21 @@ Emacs’ default handling of undo is a bit confusing. Undo-tree makes it much clearer. It’s especially helpful for protoyping and refactoring. #+BEGIN_SRC emacs-lisp -(use-package undo-tree - :config (progn - (global-undo-tree-mode) - ;; Keep region when undoing in region - (defadvice undo-tree-undo (around keep-region activate) - (if (use-region-p) - (let ((m (set-marker (make-marker) (mark))) - (p (set-marker (make-marker) (point)))) - ad-do-it - (goto-char p) - (set-mark m) - (set-marker p nil) - (set-marker m nil)) - ad-do-it))) - :diminish undo-tree-mode) + (use-package undo-tree + :config (progn + (global-undo-tree-mode) + ;; Keep region when undoing in region + (defadvice undo-tree-undo (around keep-region activate) + (if (use-region-p) + (let ((m (set-marker (make-marker) (mark))) + (p (set-marker (make-marker) (point)))) + ad-do-it + (goto-char p) + (set-mark m) + (set-marker p nil) + (set-marker m nil)) + ad-do-it))) + :diminish undo-tree-mode) #+END_SRC ** visual-regexp @@ -2278,10 +2270,10 @@ so this package is pretty useful because it highlights everything in the buffer for me. #+BEGIN_SRC emacs-lisp -(use-package visual-regexp - :bind (("C-c r" . vr/replace) - ("C-c q" . vr/query-replace) - ("C-c m" . vc/mc-mark))) + (use-package visual-regexp + :bind (("C-c r" . vr/replace) + ("C-c q" . vr/query-replace) + ("C-c m" . vc/mc-mark))) #+END_SRC * Tangling diff --git a/tag-karabiner/karabiner.d/configuration/karabiner.json b/tag-karabiner/karabiner.d/configuration/karabiner.json index 4f78bb69..0e866a63 100644 --- a/tag-karabiner/karabiner.d/configuration/karabiner.json +++ b/tag-karabiner/karabiner.d/configuration/karabiner.json @@ -1,41 +1,63 @@ { - "profiles" : [ - { - "fn_function_keys" : { - "f12" : "volume_up", - "f9" : "vk_consumer_next", - "f5" : "vk_consumer_illumination_down", - "f10" : "mute", - "f1" : "vk_consumer_brightness_down", - "f6" : "vk_consumer_illumination_up", - "f2" : "vk_consumer_brightness_up", - "f7" : "vk_consumer_previous", - "f11" : "volume_down", - "f3" : "vk_mission_control", - "f8" : "vk_consumer_play", - "f4" : "vk_launchpad" - }, - "name" : "Default Profile", - "selected" : true, - "simple_modifications" : { - "left_control" : "left_command", - "right_control" : "right_command", - "left_option" : "left_control", - "caps_lock" : "delete_or_backspace", - "right_command" : "right_option", - "left_command" : "left_option", - "right_option" : "right_control" - } - }, - { - "name" : "Macbook keyboard", - "simple_modifications" : { - "left_command" : "left_control", - "caps_lock" : "delete_or_backspace", - "grave_accent_and_tilde" : "non_us_backslash", - "non_us_backslash" : "grave_accent_and_tilde", - "right_command" : "right_control" - } - } - ] -} \ No newline at end of file + "profiles": [ + { + "devices": [ + { + "identifiers": { + "is_keyboard": true, + "is_pointing_device": false, + "product_id": 602, + "vendor_id": 1452 + }, + "ignore": true, + "keyboard_type": 41 + }, + { + "identifiers": { + "is_keyboard": true, + "is_pointing_device": false, + "product_id": 8209, + "vendor_id": 1241 + }, + "ignore": false, + "keyboard_type": 40 + } + ], + "fn_function_keys": { + "f1": "vk_consumer_brightness_down", + "f10": "mute", + "f11": "volume_down", + "f12": "volume_up", + "f2": "vk_consumer_brightness_up", + "f3": "vk_mission_control", + "f4": "vk_launchpad", + "f5": "vk_consumer_illumination_down", + "f6": "vk_consumer_illumination_up", + "f7": "vk_consumer_previous", + "f8": "vk_consumer_play", + "f9": "vk_consumer_next" + }, + "name": "Default Profile", + "selected": true, + "simple_modifications": { + "caps_lock": "delete_or_backspace", + "left_command": "left_option", + "left_control": "left_command", + "left_option": "left_control", + "right_command": "right_option", + "right_control": "right_command", + "right_option": "right_control" + } + }, + { + "name": "Macbook keyboard", + "simple_modifications": { + "caps_lock": "delete_or_backspace", + "grave_accent_and_tilde": "non_us_backslash", + "left_command": "left_control", + "non_us_backslash": "grave_accent_and_tilde", + "right_command": "right_control" + } + } + ] +} diff --git a/tag-ssh/ssh/rc b/tag-ssh/ssh/rc index 7b6da3a8..59e4cfd1 100644..100755 --- a/tag-ssh/ssh/rc +++ b/tag-ssh/ssh/rc @@ -1,5 +1,5 @@ #!/bin/sh if [ "$SSH_AUTH_SOCK" ] then - ln -sf $SSH_AUTH_SOCK ~/.ssh/ssh_auth_sock + ln -sf $SSH_AUTH_SOCK ~/.ssh/ssh_auth_sock fi diff --git a/tag-zsh/config/zsh/zshenv b/tag-zsh/config/zsh/zshenv index 93893530..86efc02d 100644 --- a/tag-zsh/config/zsh/zshenv +++ b/tag-zsh/config/zsh/zshenv @@ -1,19 +1,19 @@ if [[ $SHLVL -eq 1 || (-n $DISPLAY && $SHLVL -lt 3) ]] then - if [[ -f $ZDOTDIR/zshenv.local ]] - then - . $ZDOTDIR/zshenv.local - fi + if [[ -f $ZDOTDIR/zshenv.local ]] + then + . $ZDOTDIR/zshenv.local + fi - if [[ -f $ZDOTDIR/zshenv.private ]] - then - . $ZDOTDIR/zshenv.private - fi + if [[ -f $ZDOTDIR/zshenv.private ]] + then + . $ZDOTDIR/zshenv.private + fi - ZPLUG_HOME=${ZPLUG_HOME:-~/projects/zplug} + ZPLUG_HOME=${ZPLUG_HOME:-~/projects/zplug} - if [[ -z $SSH_AUTH_SOCK ]] - then - export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent.socket - fi + if [[ -z $SSH_AUTH_SOCK ]] + then + export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent.socket + fi fi diff --git a/tag-zsh/config/zsh/zshrc b/tag-zsh/config/zsh/zshrc index 2a37b508..f5327507 100644 --- a/tag-zsh/config/zsh/zshrc +++ b/tag-zsh/config/zsh/zshrc @@ -7,29 +7,41 @@ zplug "clvv/fasd", hook-build:"PREFIX=$HOME make install" zplug "caarlos0/zsh-open-pr", as:plugin if [[ -n $commands[nix-env] ]] then - zplug "spwhitt/nix-zsh-completions", as:plugin - fpath=($fpath $ZPLUG_REPOS/spwhitt/nix-zsh-completions) + zplug "spwhitt/nix-zsh-completions", as:plugin + fpath=($fpath $ZPLUG_REPOS/spwhitt/nix-zsh-completions) fi zplug "gerges/oh-my-zsh-jira-plus", as:plugin, if:"[[ ${(SN)HOST%spotcap} ]]" zplug "lukechilds/zsh-better-npm-completion", if:"[[ -n $commands[npm] ]]", nice:10 zplug "hlissner/zsh-autopair", nice:10 +HISTSIZE=3000 +SAVEHIST=10000 +HISTFILE=${XDG_CACHE_HOME:=$HOME/.cache}/zsh/history + WORDCHARS=${${WORDCHARS//[-.]}//[\/]} if [[ ${path[(I)$HOME/bin ]} ]] then - path+=($HOME/bin) + path+=($HOME/bin) +fi + +if [[ ${path[(I)$HOME/.local/bin ]} ]] +then + path+=($HOME/.local/bin) fi export EDITOR=emacsclient alias ec=emacsclient alias open-project=projectile _emacs_function () { - emacsclient -e "($1 \"$2\")" > /dev/null + emacsclient -e "($1 \"$2\")" > /dev/null } projectile () { - _emacs_function projectile-switch-project-by-name ${1:-$PWD} + _emacs_function projectile-switch-project-by-name ${1:-$PWD} +} +yarn () { + PREFIX=$HOME/.local command yarn "$@" } ls='\ls' @@ -39,25 +51,25 @@ bsd_ls_options="-p" bsd_ls_isodate="-D '%F %k:%M'" case $OSTYPE in - darwin*) - if [[ -n $commands[gls] ]] - then - ls='\gls' - ls_options=$gnu_ls_options - ls_isodate=$gnu_ls_isodate - else - ls_options=$bsd_ls_options - ls_isodate=$bsd_ls_isodate - fi - ;; - freebsd*) - ls_options=$bsd_ls_options - ls_isodate=$bsd_ls_isodate - ;; - linux-gnu) - ls_options=$gnu_ls_options - ls_isodate=$gnu_ls_isodate - ;; + darwin*) + if [[ -n $commands[gls] ]] + then + ls='\gls' + ls_options=$gnu_ls_options + ls_isodate=$gnu_ls_isodate + else + ls_options=$bsd_ls_options + ls_isodate=$bsd_ls_isodate + fi + ;; + freebsd*) + ls_options=$bsd_ls_options + ls_isodate=$bsd_ls_isodate + ;; + linux-gnu) + ls_options=$gnu_ls_options + ls_isodate=$gnu_ls_isodate + ;; esac alias l="${ls} ${ls_options} -Bp" alias l1="${ls} ${ls_options} -1" @@ -75,19 +87,19 @@ bindkey '\e[3~' delete-char bindkey '\C-hd' describe-key-briefly backward-argument () { - local WORDCHARS="\!\`~#@$%^&*()-_=+[{]}\|;:,<.>/?\'\"" - zle backward-word + local WORDCHARS="\!\`~#@$%^&*()-_=+[{]}\|;:,<.>/?\'\"" + zle backward-word } forward-argument () { - local WORDCHARS="\!\`~#@$%^&*()-_=+[{]}\|;:,<.>/?\'\"" - zle forward-word + local WORDCHARS="\!\`~#@$%^&*()-_=+[{]}\|;:,<.>/?\'\"" + zle forward-word } kill-argument () { - local WORDCHARS="\!\`~#@$%^&*()-_=+[{]}\|;:,<.>/?\'\"" - zle backward-argument - zle kill-word + local WORDCHARS="\!\`~#@$%^&*()-_=+[{]}\|;:,<.>/?\'\"" + zle backward-argument + zle kill-word } zle -N backward-argument @@ -98,92 +110,92 @@ bindkey '\e^f' forward-argument bindkey '\e^k' kill-argument ds () { - du -hd1 $1 | sort -h + du -hd1 $1 | sort -h } zle -C hist-complete complete-word _generic zstyle ':completion:hist-complete:*' completer _history -bindkey '\e ' hist-complete +bindkey '\e ' hist-complete zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' '+m:{A-Z}={a-z}' zstyle ':completion:*' completer _expand _complete _match if [[ -z $SSH_AUTH_SOCK && $commands[ssh-agent] ]] then - eval $(ssh-agent) + eval $(ssh-agent) fi if zplug check Tarrasch/zsh-autoenv then - AUTOENV_FILE_ENTER=.envrc - AUTOENV_HANDLE_LEAVE=0 - AUTOENV_LOOK_UPWARDS=1 + AUTOENV_FILE_ENTER=.envrc + AUTOENV_HANDLE_LEAVE=0 + AUTOENV_LOOK_UPWARDS=1 fi if zplug check gerges/oh-my-zsh-jira-plus then - JIRA_RAPID_BOARD=true + JIRA_RAPID_BOARD=true fi # Then, source plugins and add commands to $PATH zplug load # General configuration -setopt auto_cd # Change directories without `cd` +setopt auto_cd # Change directories without `cd` if zplug check zsh-users/zsh-completions then - autoload -U compinit && compinit + autoload -U compinit && compinit fi if [[ -n $commands[hub] ]] then - compdef _hub hub - alias git=hub - alias gh=hub + compdef _hub hub + alias git=hub + alias gh=hub fi if [[ -n $commands[lunchy] ]] then - LUNCHY_DIR=$(dirname $(gem which lunchy))/../extras - if [ -f $LUNCHY_DIR/lunchy-completion.zsh ]; then - . $LUNCHY_DIR/lunchy-completion.zsh - fi + LUNCHY_DIR=$(dirname $(gem which lunchy))/../extras + if [ -f $LUNCHY_DIR/lunchy-completion.zsh ]; then + . $LUNCHY_DIR/lunchy-completion.zsh + fi fi if [[ $TERM == "dumb" ]] then - PROMPT="> " + PROMPT="> " else - unset RPROMPT - # show username@host if logged in through SSH - [[ "$SSH_CONNECTION" != '' ]] && prompt_pure_username=' %F{242}%n@%m%f' + unset RPROMPT + # show username@host if logged in through SSH + [[ "$SSH_CONNECTION" != '' ]] && prompt_pure_username=' %F{242}%n@%m%f' - # show username@host if root, with username in white - [[ $UID -eq 0 ]] && prompt_pure_username=' %F{white}%n%f%F{242}@%m%f' + # show username@host if root, with username in white + [[ $UID -eq 0 ]] && prompt_pure_username=' %F{white}%n%f%F{242}@%m%f' - setopt prompt_subst - setopt prompt_cr - PROMPT='%F{blue}%~%f${prompt_pure_username} + setopt prompt_subst + setopt prompt_cr + PROMPT='%F{blue}%~%f${prompt_pure_username} %(?.%F{magenta}.%F{red})>%f ' fi if zplug check clvv/fasd then - if [[ -n $commands[fasd] ]] - then - _FASD_DATA="$HOME/.cache/zsh/fasd-data" - source =fasd - - fasd_cache="$HOME/.fasd-init-zsh" - if [ "$(command -v fasd)" -nt "$fasd_cache" -o ! -s "$fasd_cache" ]; then - fasd --init posix-alias zsh-hook zsh-ccomp zsh-ccomp-install >| "$fasd_cache" - fi - source "$fasd_cache" - unset fasd_cache - else - echo "no fasd" - fi + if [[ -n $commands[fasd] ]] + then + _FASD_DATA="$HOME/.cache/zsh/fasd-data" + source =fasd + + fasd_cache="$HOME/.fasd-init-zsh" + if [ "$(command -v fasd)" -nt "$fasd_cache" -o ! -s "$fasd_cache" ]; then + fasd --init posix-alias zsh-hook zsh-ccomp zsh-ccomp-install >| "$fasd_cache" + fi + source "$fasd_cache" + unset fasd_cache + else + echo "no fasd" + fi fi -unsetopt flow_control # Let me use ^S and ^Q +unsetopt flow_control # Let me use ^S and ^Q |