diff options
Diffstat (limited to 'Emacs/.config/emacs')
-rw-r--r-- | Emacs/.config/emacs/config.org | 107 |
1 files changed, 54 insertions, 53 deletions
diff --git a/Emacs/.config/emacs/config.org b/Emacs/.config/emacs/config.org index cf1482d..2b38008 100644 --- a/Emacs/.config/emacs/config.org +++ b/Emacs/.config/emacs/config.org @@ -57,17 +57,23 @@ setup the custom-file to exist in the var-directory :config (global-auto-revert-mode 1)) #+end_src -** Path -Setting the path variable cos it can get annoying sometimes +** Environment variables +- Setting the path variable cos it can get annoying sometimes. +- Setting the ssh agent #+begin_src emacs-lisp (use-package env :defer 1 :straight nil :config - (setenv "PATH" - (concat - (expand-file-name "~/.local/bin:") - (getenv "PATH")))) + (setenv + "PATH" ; + (concat + (expand-file-name "~/.local/bin:") + (getenv "PATH"))) + + (setenv + "SSH_AGENT_SOCK" + (shell-command-to-string "echo -n \"${XDG_RUNTIME_DIR}/ssh-agent.socket\""))) #+end_src * Custom Functions These are general custom functions I have defined for various @@ -75,42 +81,25 @@ purposes. These encapsulate functionality that could apply to multiple packages/situations, otherwise I would've defined it in the place it's required. ** Toggle buffer -There are many cases where 'toggling' a buffer is very useful. For -example, toggling a shell to access it quickly and hide it away with -little annoyance. - -This is negligible with a bit of Emacs lisp. However, as stated -earlier, there are /many/ cases where this is useful. Following the -DRY principle means a more abstract function would be better to use -here. - -One may use higher order functions to create an abstract form that -handles toggling, and then the caller can wrap this call in a new -function if they wish to use it in a keybinding. This format or -construct is kinda common (using a higher order function and wrapping -it in an interactive function for use in a binding), so I created a -macro that further wraps this functionality, creating a custom -function for you. - -The macro asks for a function name, a buffer name and the function -necessary to create a buffer with that name. It then generates a -function with the given name that holds the necessary logic to -'toggle' buffers. -#+begin_src emacs-lisp -(defmacro +dx/create-toggle-function (func-name buf-name buf-create) - "Generate a function named func-name that toggles +Like VSCode's toggling feature for just the terminal, but now for +anything I want. +#+begin_src emacs-lisp +(with-eval-after-load "window" + (defmacro +dx/create-toggle-function (func-name buf-name buf-create) + "Generate a function named func-name that toggles the buffer with name buf-name and creation function buf-create." - `(defun ,func-name () - (interactive) - (let* ((buffer (or (get-buffer ,buf-name) (,buf-create))) - (displayed (get-buffer-window buffer))) - (cond (displayed - (select-window displayed) - (delete-window)) - (t - (display-buffer buffer) - (select-window (get-buffer-window buffer))))))) -#+end_src + `(defun ,func-name () + (interactive) + (let* ((buffer (or (get-buffer ,buf-name) (,buf-create))) + (displayed (get-buffer-window buffer))) + (cond (displayed + (select-window displayed) + (delete-window)) + (t + (display-buffer buffer) + (select-window (get-buffer-window buffer)))))))) +#+end_src +<<<<<<< HEAD ** Create auto save Macro that defines functionality that runs after a buffer save. Requires a list of conditions (so it doesn't happen FOR ALL saved @@ -128,6 +117,11 @@ essentially performs the same task. In particular if you use get a generated buffer of output from the command, useful for checking errors and general messages. Better than vim, eh? +======= +** Auto-run command after-save-hook +Define a macro that can run a body of functionality on a given set of +files on after-save-hook. +>>>>>>> origin/master #+begin_src emacs-lisp (use-package simple :straight nil @@ -151,13 +145,21 @@ common use of this macro. "For a given list of forms CDR, return a quoted non-argument lambda." `(quote (lambda () ,@CDR))) #+end_src -** Environment setup -Provides a macro to do quick environmental conditionals. -#+begin_src emacs-lisp -(defconst +dx:environment (system-name)) -(defmacro +dx/env-cond (name &rest to-run) - `(when (string= +dx:environment ,name) - ,@to-run)) +** sys-name-cond +#+begin_src emacs-lisp +(defmacro +dx/sys-name-cond (&rest pairs) + (let ((current-lisp)) + (while pairs + (let* ((pair (car pairs)) + (name (car pair)) + (body (cdr pair))) + (add-to-list + 'current-lisp + `((string= ,name (system-name)) ,@body)) + (setq pairs (cdr pairs)))) + `(cond + ,@current-lisp))) +>>>>>>> origin/master #+end_src * Aesthetics Load my custom "personal-theme" theme which is stored in the Emacs lisp @@ -177,8 +179,9 @@ Set font size to 125. (use-package faces :straight nil :config - (+dx/env-cond "spiderboy" (set-face-attribute 'default nil :height 150)) - (+dx/env-cond "oldboy" (set-face-attribute 'default nil :height 115))) + (+dx/sys-name-cond + ("spiderboy" (set-face-attribute 'default nil :height 150)) + ("oldboy" (set-face-attribute 'default nil :height 115)))) #+end_src Turn off the startup buffer because I prefer [[Dashboard]], and write into @@ -228,9 +231,7 @@ instead just picking stuff I think is useful. :config (general-def :states '(normal motion) - "SPC" nil - "M-V" #'+dx/newline - "M-v" (proc (interactive) (+dx/newline 1))) + "SPC" nil) (general-create-definer leader :states '(normal motion) |