aboutsummaryrefslogtreecommitdiff
path: root/Emacs/.config/emacs
diff options
context:
space:
mode:
Diffstat (limited to 'Emacs/.config/emacs')
-rw-r--r--Emacs/.config/emacs/config.org107
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)