Bunch of changes
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
alias l ls -la
|
||||
alias ss sudo-switch
|
||||
alias pr project-root
|
||||
alias pr project-root $1
|
||||
alias gt goto
|
||||
alias gs magit-status
|
||||
alias fw find-file-other-window $1
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
00527 Wed Sep 3 17:15:36 2025 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00458 Tue Oct 1 18:22:44 2024 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00424 Tue Oct 1 14:20:22 2024 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00382 Sat Jan 24 00:41:28 2026 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00381 Tue Dec 9 01:41:15 2025 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00364 Sat Jan 24 00:38:27 2026 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00288 Sun Jun 1 14:24:57 2025 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00281 Thu Jul 13 03:07:51 2023 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00267 Fri Aug 16 10:54:52 2024 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
@@ -11,8 +14,8 @@
|
||||
00204 Wed Dec 28 14:50:42 2022 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00187 Thu Jan 12 01:30:09 2023 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00172 Mon Jan 9 12:59:13 2023 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00166 Fri Aug 16 11:05:23 2024 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00166 Mon May 6 02:40:23 2024 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00166 Fri Aug 16 11:05:23 2024 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00154 Sat Jul 26 18:43:42 2025 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00120 Thu Aug 29 18:45:32 2024 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00114 Fri Jul 21 11:58:31 2023 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
@@ -29,12 +32,12 @@
|
||||
00048 Sun May 5 19:34:16 2024 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00046 Wed Oct 12 11:27:19 2022 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00042 Tue Aug 1 19:58:49 2023 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00038 Tue Oct 11 16:47:44 2022 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00038 Fri Oct 14 13:05:44 2022 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00038 Tue Oct 11 16:47:44 2022 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00037 Thu Aug 17 18:11:59 2023 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00027 Thu Jan 12 01:14:32 2023 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00024 Thu Jan 12 01:14:54 2023 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00012 Tue Jan 17 13:58:01 2023 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00006 Thu Jun 22 23:16:42 2023 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00006 Mon Jan 9 11:04:43 2023 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00006 Thu Jun 22 23:16:42 2023 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
00000 Fri Dec 2 13:58:02 2022 Aryadev Chavali <aryadev@aryadevchavali.com>
|
||||
|
||||
@@ -154,6 +154,12 @@ no need to check with me first!
|
||||
#+begin_src emacs-lisp
|
||||
(setopt async-shell-command-buffer 'new-buffer)
|
||||
#+end_src
|
||||
|
||||
Let's also ensure we don't hear that stupid bell whenever we do a
|
||||
keyboard quit or other such operation.
|
||||
#+begin_src emacs-lisp
|
||||
(setopt ring-bell-function nil)
|
||||
#+end_src
|
||||
* Custom functionality and libraries
|
||||
This is custom Lisp that I or someone else has written which I really
|
||||
need to setup ASAP due to how necessary it is throughout the rest of
|
||||
@@ -243,7 +249,7 @@ must be preserved for any operation suggested by the above.
|
||||
(eq 4 (car arg)))
|
||||
(setq items
|
||||
(thread-first (current-buffer)
|
||||
(--get-dir-or-project-dir )
|
||||
(+cfg/--get-dir-or-project-dir )
|
||||
(assoc buffer-alist #'string=)
|
||||
(cdr))))
|
||||
((and (listp arg)
|
||||
@@ -336,9 +342,9 @@ expression. Here's a macro to do that for me.
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(defmacro add-multiple-to-list (listvar &rest elements)
|
||||
(->> elements
|
||||
(mapcar (lambda (el) (list 'cl-pushnew el listvar)))
|
||||
(cons 'progn)))
|
||||
(thread-last elements
|
||||
(mapcar (lambda (el) (list 'cl-pushnew el listvar)))
|
||||
(cons 'progn)))
|
||||
#+end_src
|
||||
** Setting number of native jobs
|
||||
Emacs has a native compilation capability to make things /even
|
||||
@@ -358,21 +364,6 @@ never used before, 3 seems to be a reasonable default.
|
||||
3)
|
||||
(setq native-comp-async-jobs-number)))
|
||||
#+end_src
|
||||
** Proper paths in Emacs
|
||||
Imagine you adjust your path in ZSH. This change won't necessarily
|
||||
affect the results of ~(getenv "PATH")~ - you'd need to ensure Emacs
|
||||
was loaded from a recent ZSH instance. This package allows you to
|
||||
synchronise the PATH variable with the shell to avoid any silly
|
||||
issues.
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(use-package exec-path-from-shell
|
||||
:straight t
|
||||
:demand t
|
||||
:config
|
||||
(when (member window-system '(mac ns x))
|
||||
(exec-path-from-shell-initialize)))
|
||||
#+end_src
|
||||
** Reset font size
|
||||
I define a function here that sets the font size for the so-called
|
||||
"default" face; this is usually the face that all other faces in a
|
||||
@@ -422,7 +413,7 @@ works for any theme!
|
||||
* Essential packages
|
||||
External and internal packages absolutely necessary for the rest of
|
||||
this configuration.
|
||||
** TODO General - Bindings package
|
||||
** General - Bindings package
|
||||
What's the point of an editor with no keybindings? Vanilla Emacs has
|
||||
the ~bind-key~ function (and the ~bind-key*~ macro) for this, but
|
||||
[[*Evil - Vim Emulation][Evil]] has it's own ~evil-define-key~. I'd
|
||||
@@ -435,9 +426,10 @@ over some pre-defined configuration, all through one interface.
|
||||
|
||||
Here I setup the rough outline of how bindings should be made in the
|
||||
global scope, namely:
|
||||
- Use "SPC" as a "leader", the root of all general bindings
|
||||
- Use "SPC" as a "leader", the root of all general bindings when in
|
||||
normal/motion mode.
|
||||
- Use "\" as a local-leader, the root of all major mode (read "mode
|
||||
specific") bindings
|
||||
specific") bindings in normal/motion mode.
|
||||
- A few "definers" for the different sub bindings for the leader key
|
||||
- ~nmmap~ macro, for defining keys under both normal and motion
|
||||
states.
|
||||
@@ -447,7 +439,6 @@ global scope, namely:
|
||||
:straight t
|
||||
:demand t
|
||||
:config
|
||||
;; General which key definitions for leaders
|
||||
(general-def
|
||||
:states '(normal motion)
|
||||
"SPC" nil
|
||||
@@ -569,7 +560,9 @@ set of examples on how to use general.
|
||||
"S" (proc-int (find-file (concat user-emacs-directory "straight/"))))
|
||||
|
||||
(insert-leader
|
||||
"c" #'insert-char)
|
||||
"y" #'yank-from-kill-ring
|
||||
"c" #'insert-char
|
||||
"e" #'emoji-search)
|
||||
|
||||
(dir-leader
|
||||
"v" #'add-dir-local-variable)
|
||||
@@ -1118,18 +1111,17 @@ fundamental mode and call it a day.
|
||||
(setq inhibit-startup-screen t
|
||||
inhibit-startup-echo-area-message user-login-name
|
||||
initial-major-mode 'text-mode
|
||||
initial-scratch-message ""
|
||||
ring-bell-function 'ignore)
|
||||
initial-scratch-message "")
|
||||
:config
|
||||
(add-hook 'after-init-hook
|
||||
(proc
|
||||
(with-current-buffer "*scratch*"
|
||||
(goto-char (point-max))
|
||||
(thread-last
|
||||
(straight-recipes-list)
|
||||
length
|
||||
(format "Emacs v%s - %s - %s packages\n" emacs-version (emacs-init-time))
|
||||
(insert))))))
|
||||
(insert
|
||||
(format "Emacs v%s - %s - %s packages\n"
|
||||
emacs-version
|
||||
(emacs-init-time)
|
||||
(length (straight-recipes-list))))))))
|
||||
#+end_src
|
||||
** Cursor and the highlighted line
|
||||
Configure the blinking cursor.
|
||||
@@ -1158,8 +1150,10 @@ to look at, without even being that immediately informative.
|
||||
|
||||
I've got a custom Emacs lisp package
|
||||
([[file:elisp/better-mode-line.el][here]]) which sets up the default
|
||||
mode line as a set of 3 segments: left, centre and right. It pads out
|
||||
the mode line with space strings to achieve this.
|
||||
mode line as a sequence of 3 segments: left, centre and right. It
|
||||
pads out the mode line with relevant space strings, computed using the
|
||||
current windows width, to make the three segments actually justify to
|
||||
their relevant sides.
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(use-package better-mode-line
|
||||
@@ -1167,8 +1161,8 @@ the mode line with space strings to achieve this.
|
||||
:demand t
|
||||
:init
|
||||
(defun +mode-line/evil-state ()
|
||||
"Returns either \"E\" if no evil-state is defined or the first character
|
||||
of the evil state capitalised"
|
||||
"Returns either \"E\" if no evil-state is defined or the first character of
|
||||
the evil state capitalised"
|
||||
(if (bound-and-true-p evil-state)
|
||||
(-->
|
||||
(format "%s" evil-state)
|
||||
@@ -1176,8 +1170,16 @@ of the evil state capitalised"
|
||||
(upcase it))
|
||||
"E"))
|
||||
|
||||
(defun +mode-line/rsync-state ()
|
||||
"Returns an indicator on the current progress of the rsync process if
|
||||
dired-rsync is being used"
|
||||
(when (and (eq major-mode 'dired-mode)
|
||||
(bound-and-true-p dired-rsync-modeline-status)
|
||||
(mode-line-window-selected-p))
|
||||
(concat " " dired-rsync-modeline-status)))
|
||||
|
||||
(setq better-mode-line/left-segment
|
||||
'(" " ;; Left padding
|
||||
'(" " ;; Left padding
|
||||
(:eval
|
||||
(if (mode-line-window-selected-p)
|
||||
'("%l:%c" ;; Line and column count
|
||||
@@ -1188,28 +1190,23 @@ of the evil state capitalised"
|
||||
(+mode-line/evil-state))
|
||||
"]"))))
|
||||
better-mode-line/centre-segment
|
||||
'("%+" ;; Buffer state (changed or not)
|
||||
"%b" ;; Buffer name
|
||||
"(" ;; Major mode
|
||||
'("%+" ;; Buffer state (changed or not)
|
||||
"%b" ;; Buffer name
|
||||
"(" ;; Major mode
|
||||
(:eval (format "%s" major-mode))
|
||||
")")
|
||||
better-mode-line/right-segment
|
||||
'((:eval
|
||||
(when (mode-line-window-selected-p)
|
||||
(if vc-mode ;; Project and Git branch
|
||||
(if vc-mode ;; Project and Git branch
|
||||
vc-mode
|
||||
"")))
|
||||
mode-line-misc-info ;; Any other information
|
||||
(:eval
|
||||
(when (and (eq major-mode 'dired-mode)
|
||||
(bound-and-true-p dired-rsync-modeline-status)
|
||||
(mode-line-window-selected-p))
|
||||
(concat " "
|
||||
dired-rsync-modeline-status)))
|
||||
(:eval ;; Compilation mode errors
|
||||
mode-line-misc-info ;; Any other information
|
||||
(:eval (+mode-line/rsync-state))
|
||||
(:eval ;; Compilation mode errors
|
||||
(if (eq major-mode 'compilation-mode)
|
||||
compilation-mode-line-errors))
|
||||
" " ;; Right padding
|
||||
" " ;; Right padding
|
||||
))
|
||||
:config
|
||||
(better-mode-line/setup-mode-line))
|
||||
@@ -1377,10 +1374,7 @@ Nice set of icons, for even more emojis.
|
||||
#+begin_src emacs-lisp
|
||||
(use-package all-the-icons
|
||||
:straight t
|
||||
:defer t
|
||||
:general
|
||||
(insert-leader
|
||||
"e" #'all-the-icons-insert))
|
||||
:defer t)
|
||||
#+end_src
|
||||
** Pretty symbols
|
||||
Prettify symbols mode allows users to declare "symbols" that replace
|
||||
@@ -1662,9 +1656,6 @@ Here I setup dired with a few niceties
|
||||
dired instance will automatically target the other dired window
|
||||
(~dired-dwim~)
|
||||
- If opening an application on a PDF file, suggest ~zathura~
|
||||
- Examine all the subdirectories within the same buffer
|
||||
(~+dired/insert-all-subdirectories~)
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(use-package dired
|
||||
:defer t
|
||||
@@ -1782,8 +1773,6 @@ Here I setup dired with a few niceties
|
||||
:keymaps 'dired-mode-map
|
||||
"i" #'dired-maybe-insert-subdir
|
||||
"d" #'dired-goto-subdir
|
||||
"I" #'+dired/insert-all-subdirectories
|
||||
"o" #'dired-omit-mode
|
||||
"K" #'dired-kill-subdir
|
||||
"m" #'dired-mark-files-regexp
|
||||
"u" #'dired-undo)
|
||||
@@ -1795,7 +1784,43 @@ Here I setup dired with a few niceties
|
||||
'("\\.png\\'" "feh")
|
||||
'("\\.webm\\'" "mpv")
|
||||
'("\\.mp[34]\\'" "mpv")
|
||||
'("\\.mkv\\'" "mpv"))
|
||||
'("\\.mkv\\'" "mpv")))
|
||||
#+end_src
|
||||
*** Dired Custom
|
||||
Some custom to add functionality to Dired.
|
||||
- ~+dired/insert-all-subdirectories~ will "insert" all subdirectories
|
||||
currently present in the dired buffer; equivalent to expanding them
|
||||
out into their own mini-session - but in the same buffer. A ~C-u~
|
||||
will do it recursively till everything is in front of you, while
|
||||
doing it without it will just do one level of depth. Useful for a
|
||||
quick tree based look at your project.
|
||||
- ~+dired/sort~ will sort out the current dired buffer, with a nice
|
||||
little ~completing-read~ menu to choose from a few options on how to
|
||||
do so.
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(use-package dired
|
||||
:defer t
|
||||
:general
|
||||
(local-leader
|
||||
:keymaps 'dired-mode-map
|
||||
"I" #'+dired/insert-all-subdirectories
|
||||
"s" #'+dired/sort)
|
||||
:config
|
||||
(defun +dired/sort ()
|
||||
;; Inspired by (read: slightly rewritten and expanded from) THE XahLee
|
||||
;; himself http://xahlee.info/emacs/emacs/dired_sort.html
|
||||
(interactive)
|
||||
(let* ((options-alist `(("default" . "-Al --group-directories-first")
|
||||
("date" . "-Al -t")
|
||||
("size" . "-Al -S")
|
||||
("ext" . "-Al -X")))
|
||||
(choice (completing-read "Enter sorting order: " options-alist nil t nil nil
|
||||
(caar options-alist))))
|
||||
(thread-last options-alist
|
||||
(assoc choice)
|
||||
(cdr)
|
||||
(dired-sort-other))))
|
||||
|
||||
(defun +dired/--subdirs-not-inserted ()
|
||||
(dired-unmark-all-marks)
|
||||
@@ -1817,15 +1842,42 @@ Here I setup dired with a few niceties
|
||||
(setq subdirs-left (+dired/--subdirs-not-inserted)))))))
|
||||
#+end_src
|
||||
*** image-dired
|
||||
Image dired is a little cherry on top for Dired: the ability to look
|
||||
through swathes of images in a centralised fashion while still being
|
||||
able to do all the usual dired stuff as well is really cool.
|
||||
Image dired is the little cherry on top for Dired: the ability to
|
||||
manage loads of images with Dired movements and functionality is
|
||||
really cool.
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(use-package dired
|
||||
:defer t
|
||||
:display
|
||||
("\\*image-dired\\*"
|
||||
(display-buffer-reuse-mode-window display-buffer-in-side-window)
|
||||
(side . bottom)
|
||||
(window-height . 0.5))
|
||||
("\\*image-dired-display-image\\*"
|
||||
(display-buffer-reuse-mode-window display-buffer-in-side-window)
|
||||
(side . right)
|
||||
(window-width . 0.35))
|
||||
:init
|
||||
(setq image-dired-external-viewer "nsxiv")
|
||||
:config
|
||||
(define-advice image-dired-display-image (:override (file &optional _ignored))
|
||||
(setq file (expand-file-name file))
|
||||
(when (not (file-exists-p file))
|
||||
(error "No such file: %s" file))
|
||||
(let ((buf (get-buffer image-dired-display-image-buffer))
|
||||
(cur-win (selected-window)))
|
||||
(when buf
|
||||
(kill-buffer buf))
|
||||
(when-let ((buf (find-file-noselect file nil t)))
|
||||
(with-current-buffer buf
|
||||
(rename-buffer image-dired-display-image-buffer)
|
||||
(if (string-match (image-file-name-regexp) file)
|
||||
(image-dired-image-mode)
|
||||
;; Support visiting PDF files.
|
||||
(normal-mode))
|
||||
(display-buffer buf))
|
||||
(select-window cur-win))))
|
||||
:general
|
||||
(nmmap
|
||||
:keymaps 'image-dired-thumbnail-mode-map
|
||||
@@ -1839,18 +1891,6 @@ able to do all the usual dired stuff as well is really cool.
|
||||
"m" #'image-dired-mark-thumb-original-file
|
||||
"q" #'quit-window))
|
||||
#+end_src
|
||||
*** fd-dired
|
||||
Uses fd for finding file results in a directory: ~find-dired~ ->
|
||||
~fd-dired~.
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(use-package fd-dired
|
||||
:straight t
|
||||
:after dired
|
||||
:general
|
||||
(dir-leader
|
||||
"g" #'fd-dired))
|
||||
#+end_src
|
||||
*** wdired
|
||||
Similar to [[*(Rip)grep][wgrep]] =wdired= provides
|
||||
the ability to use Emacs motions and editing on file names. This
|
||||
@@ -2453,10 +2493,10 @@ playing.
|
||||
(app-leader
|
||||
"e" #'empv-hydra/body)
|
||||
:init
|
||||
(setq empv-audio-dir (list (expand-file-name "~/Media/music"))
|
||||
empv-video-dir (list (expand-file-name "~/Media/videos")
|
||||
(expand-file-name "~/Media/anime"))
|
||||
empv-playlist-dir (expand-file-name "~/Media/playlists")
|
||||
(setq empv-audio-dir (list (expand-file-name "~/Media/Music"))
|
||||
empv-video-dir (list (expand-file-name "~/Media/Videos")
|
||||
(expand-file-name "~/Media/Anime"))
|
||||
empv-playlist-dir (expand-file-name "~/Media/Playlists")
|
||||
empv-audio-file-extensions (list "mp3" "ogg" "wav" "m4a" "flac" "aac" "opus")
|
||||
empv-video-file-extensions (list "mkv" "mp4" "avi" "mov" "webm")
|
||||
empv-radio-channels
|
||||
@@ -2475,7 +2515,9 @@ hydra which provides a ton of the useful =gud= keybindings that exist
|
||||
in an Emacs-only map.
|
||||
#+begin_src emacs-lisp
|
||||
(use-package gud
|
||||
:general
|
||||
:config
|
||||
(evil-set-initial-state 'gdb-disassembly-mode 'motion)
|
||||
(evil-set-initial-state 'gdb-registers-mode 'motion)
|
||||
:after hydra
|
||||
:hydra
|
||||
(gud-hydra
|
||||
@@ -2512,7 +2554,7 @@ in an Emacs-only map.
|
||||
:column "Control Flow"))
|
||||
:general
|
||||
(code-leader "d" #'gud-hydra/body
|
||||
"D" #'gud-gdb))
|
||||
"D" #'gdb))
|
||||
#+end_src
|
||||
** Jira
|
||||
#+begin_src emacs-lisp
|
||||
@@ -2577,7 +2619,8 @@ modes that need the help.
|
||||
(before-save-hook . whitespace-cleanup)
|
||||
((c-mode-hook
|
||||
c++-mode-hook haskell-mode-hook python-mode-hook
|
||||
org-mode-hook text-mode-hook js-mode-hook nasm-mode-hook)
|
||||
org-mode-hook text-mode-hook js-mode-hook nasm-mode-hook
|
||||
makefile-mode-hook)
|
||||
. whitespace-mode)
|
||||
:init
|
||||
(setq whitespace-line-column nil
|
||||
@@ -2874,8 +2917,7 @@ so you can actually read the text.
|
||||
"j" #'move-error-hydra/next-error
|
||||
"k" #'move-error-hydra/previous-error)
|
||||
(code-leader
|
||||
"c" #'compile
|
||||
"r" #'recompile)
|
||||
"c" #'compile)
|
||||
(nmap
|
||||
"M-r" #'recompile)
|
||||
(:keymaps 'compilation-mode-map
|
||||
@@ -2985,6 +3027,22 @@ apply diffs - here I configure a small subset.
|
||||
"M-RET" #'diff-apply-hunk
|
||||
"RET" #'diff-goto-source))
|
||||
#+end_src
|
||||
** rmsbolt
|
||||
Godbolt but in Emacs! Need I say more?
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(use-package rmsbolt
|
||||
:straight t
|
||||
:config
|
||||
(defun +rmsbolt/set-compiler-cmd ()
|
||||
(interactive)
|
||||
(setq-local rmsbolt-command
|
||||
(read-string "Enter rmsbolt command: ")))
|
||||
:general
|
||||
(code-leader
|
||||
"r" #'rmsbolt
|
||||
"R" #'+rmsbolt/set-compiler-cmd))
|
||||
#+end_src
|
||||
* Languages
|
||||
Emacs comes with support for many different types of
|
||||
programming/markup languages. Here I configure the ones I use, as
|
||||
@@ -3599,7 +3657,7 @@ a regular expression which captures file names and digits
|
||||
(add-to-list 'compilation-error-regexp-alist-alist
|
||||
`(fsan ,(rx (and
|
||||
line-start " #" (1+ digit) " 0x" (1+ hex) " in "
|
||||
(1+ (or word "_")) " "
|
||||
(1+ (or word "_" ":" "(" ")")) " "
|
||||
(group (seq (* any) (or ".c" ".cpp" ".h" ".hpp"))) ":"
|
||||
(group (+ digit))))
|
||||
|
||||
@@ -3632,7 +3690,9 @@ programming.
|
||||
:keymaps 'rust-mode-map
|
||||
"c" #'rust-run-clippy)
|
||||
:init
|
||||
(setq rust-format-on-save t)
|
||||
(setq rust-format-on-save t
|
||||
rust-format-goto-problem nil
|
||||
rust-format-show-buffer nil)
|
||||
(with-eval-after-load "eglot"
|
||||
(add-to-list 'eglot-server-programs '(rust-mode "rust-analyzer"))))
|
||||
#+end_src
|
||||
@@ -4406,13 +4466,12 @@ does:
|
||||
gptel-response-prefix-alist '((markdown-mode . "# Response:\n")
|
||||
(org-mode . "* Response:\n")
|
||||
(text-mode . "# Response:\n"))
|
||||
gptel-directives
|
||||
'((default . "You are a large language model living in Emacs and a helpful assistant. Respond concisely and with justification.")
|
||||
(programming . "You are a large language model and a careful programmer. Provide code and only code as output without any additional text, prompt or note.")
|
||||
(writing . "You are a large language model and a writing assistant. Respond concisely.")
|
||||
(chat . "You are a large language model and a conversation partner. Respond concisely.")
|
||||
(networking . "You are a large language model and an experienced networking technician talking to a colleague. You have the CCNA qualification. Respond concisely and with justification.")))
|
||||
gptel-model 'gpt-5-mini)
|
||||
:config
|
||||
(gptel-make-anthropic "Claude"
|
||||
:key #'gptel-api-key-from-auth-source
|
||||
:stream t)
|
||||
|
||||
(defun gptel-auto-fill-response (beg end)
|
||||
"Auto-fill the text response inserted between BEG and END, skipping Org
|
||||
source code blocks."
|
||||
@@ -4722,10 +4781,13 @@ itself. The only feature left is describing changes...
|
||||
"j" #'undo-tree-visualize-redo
|
||||
"k" #'undo-tree-visualize-undo
|
||||
"l" #'undo-tree-visualize-switch-branch-right
|
||||
"h" #'undo-tree-visualize-switch-branch-left)
|
||||
"h" #'undo-tree-visualize-switch-branch-left
|
||||
"q" #'undo-tree-visualizer-quit)
|
||||
:init
|
||||
(setq undo-tree-auto-save-history t
|
||||
undo-tree-history-directory-alist backup-directory-alist)
|
||||
(with-eval-after-load "evil"
|
||||
(evil-set-initial-state 'undo-tree-visualizer-mode 'normal))
|
||||
:config
|
||||
(global-undo-tree-mode))
|
||||
#+end_src
|
||||
@@ -4833,3 +4895,21 @@ are some movements to package that movement in one go.
|
||||
"M-[" (+cfg/--then-recenter-top (backward-paragraph))
|
||||
"M-]" (+cfg/--then-recenter-top (forward-paragraph))))
|
||||
#+end_src
|
||||
** WAIT Proper paths in Emacs
|
||||
:PROPERTIES:
|
||||
:header-args:emacs-lisp: :tangle no :results none
|
||||
:END:
|
||||
Imagine you adjust your path in ZSH. This change won't necessarily
|
||||
affect the results of ~(getenv "PATH")~ - you'd need to ensure Emacs
|
||||
was loaded from a recent ZSH instance. This package allows you to
|
||||
synchronise the PATH variable with the shell to avoid any silly
|
||||
issues.
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(use-package exec-path-from-shell
|
||||
:straight t
|
||||
:demand t
|
||||
:config
|
||||
(when (member window-system '(mac ns x))
|
||||
(exec-path-from-shell-initialize)))
|
||||
#+end_src
|
||||
|
||||
@@ -39,24 +39,23 @@
|
||||
"Minimum size of padding string.")
|
||||
|
||||
(defun bml/--get-padding-size (other-size)
|
||||
"Compute length of padding to ensure string of size OTHER is on an
|
||||
"Compute length of padding to ensure string of size OTHER-SIZE is on an
|
||||
extreme end to CENTRE-SEGMENT."
|
||||
(let* ((centre-size (length (format-mode-line bml/centre-segment)))
|
||||
(win-width (window-width))
|
||||
(margins (window-margins))
|
||||
(width (if (null (car margins))
|
||||
win-width
|
||||
(+ (car margins) win-width (cdr margins)))))
|
||||
(floor (- (/ width 2) (/ centre-size 2) other-size))))
|
||||
(let ((centre-size (length (format-mode-line bml/centre-segment)))
|
||||
(window-width ;; compute total width of window (including margins)
|
||||
(thread-last (cons (window-width) (window-margins))
|
||||
(mapcar (lambda (x) (if (null x) 0 x)))
|
||||
(cl-reduce #'+))))
|
||||
(floor (- (/ window-width 2) (/ centre-size 2) other-size))))
|
||||
|
||||
(defun bml/--generate-padding (segment)
|
||||
"Make padding string to separate center segment from SEGMENT."
|
||||
(let* ((segment-size (length (format-mode-line segment)))
|
||||
(padding-size (bml/--get-padding-size segment-size)))
|
||||
(make-string (min padding-size bml/--minimum-padding) ?\s)))
|
||||
(make-string (max padding-size bml/--minimum-padding) ?\s)))
|
||||
|
||||
(defun bml/setup-mode-line ()
|
||||
"Call this to setup the mode-line when:
|
||||
"Call this to setup the mode-line when either:
|
||||
- first loading the package.
|
||||
- segments are updated."
|
||||
(setq-default mode-line-format
|
||||
|
||||
@@ -53,16 +53,29 @@
|
||||
(find-file name))))
|
||||
|
||||
(defun eshell/project-root (&rest args)
|
||||
"Change to directory `project-root'"
|
||||
(cond
|
||||
((project-current)
|
||||
(eshell-goto-latest-prompt)
|
||||
(eshell/cd (list (project-root (project-current)))))
|
||||
(t
|
||||
(setq eshell-last-command-status 1)
|
||||
(eshell/echo
|
||||
(format "[%s]: No project in current directory"
|
||||
(propertize "Error" 'font-lock-face '(:foreground "red")))))))
|
||||
"Change to directory of `project-root', if current working directory is
|
||||
in a project."
|
||||
(eshell-eval-using-options
|
||||
"project-root"
|
||||
args
|
||||
'((?h "help" nil nil "show usage")
|
||||
:usage "
|
||||
|
||||
Go to the root of the project which the current working directory is a
|
||||
member of. If the current working directory is not in a valid project,
|
||||
an error is produced.")
|
||||
(cond
|
||||
((project-current)
|
||||
(eshell-goto-latest-prompt)
|
||||
(thread-last (project-current)
|
||||
(project-root)
|
||||
(list)
|
||||
(eshell/cd)))
|
||||
(t
|
||||
(setq eshell-last-command-status 1)
|
||||
(thread-last (propertize "Error" 'font-lock-face '(:foreground "red"))
|
||||
(format "[%s]: No project in current directory")
|
||||
(eshell/echo))))))
|
||||
|
||||
(defun eshell/sudo-switch (&rest args)
|
||||
"Switch to and from administrative (sudo) mode in Eshell.
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
(("Emacs-wgrep" . "3132abd3750b8c87cbcf6942db952acfab5edccd")
|
||||
("Tidal" . "fefb1c364af42be265e9f02477d6d2d8fb2ec2b9")
|
||||
("ace-link" . "06ab398df85e81d1dc763b3210732dd26cba60a1")
|
||||
("ace-window" . "77115afc1b0b9f633084cf7479c767988106c196")
|
||||
("aggressive-indent-mode" . "a437a45868f94b77362c6b913c5ee8e67b273c42")
|
||||
@@ -50,6 +51,7 @@
|
||||
("goto-chg" . "278cd3e6d5107693aa2bb33189ca503f22f227d0")
|
||||
("gptel" . "8a39875973a97c1e4aa53edf27407e8c0daaae5e")
|
||||
("guile" . "a0f111f8dedd31c593c4ed12c0b99745f3c1340f")
|
||||
("haskell-mode" . "383b4b77753ef83420c7a755f86e1ec4770f551b")
|
||||
("helpful" . "4ba24cac9fb14d5fdc32582cd947572040e82b2c")
|
||||
("hl-todo" . "0faf8569b67f5b23891416d9e7a67e3843338f2a")
|
||||
("htmlize" . "c9a8196a59973fabb3763b28069af9a4822a5260")
|
||||
@@ -78,6 +80,7 @@
|
||||
("queue" . "130c2d656cd5d7376552272fab9e50a7c37d0c4a")
|
||||
("rainbow-delimiters" . "f40ece58df8b2f0fb6c8576b527755a552a5e763")
|
||||
("rg.el" . "e9dc4ed342e0212d08fb82554dfd3c57fdfa5b1a")
|
||||
("rmsbolt" . "05c4795226f859009bc570940139473b6b6f7555")
|
||||
("rust-mode" . "9915b3a585a7a75e9126df9e0e9d1df8057ae3cf")
|
||||
("s.el" . "dda84d38fffdaf0c9b12837b504b402af910d01d")
|
||||
("separedit.el" . "bfd0902d771f9f0160e4f16a7b6e8c29ce3447fe")
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"NeoSolarized": { "branch": "master", "commit": "b94b1a9ad51e2de015266f10fdc6e142f97bd617" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "e69b434b968a33815e2f02a5c7bd7b8dd4c7d4b2" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "ad7d9580338354ccc136e5b8f0aa4f880434dcdc" },
|
||||
"vim-tmux-navigator": { "branch": "master", "commit": "c45243dc1f32ac6bcf6068e5300f3b2b237e576a" }
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ export SSH_AUTH_SOCK="${XDG_RUNTIME_DIR}/ssh-agent.socket"
|
||||
sh /etc/profile.d/debuginfod.sh
|
||||
|
||||
# Import useful variables to systemd
|
||||
systemctl --user import-environment PATH SSH_AUTH_SOCK EDITOR
|
||||
systemctl --user import-environment PATH SSH_AUTH_SOCK EDITOR DEBUGINFOD_URLS
|
||||
|
||||
# Run some programs
|
||||
echo "Welcome to..."
|
||||
|
||||
@@ -3,16 +3,16 @@
|
||||
killall sxhkd;
|
||||
|
||||
sh .xprofile;
|
||||
screentimer on;
|
||||
$HOME/.local/scripts/screentimer on;
|
||||
|
||||
xrandr --output HDMI1 --auto --mode 1920x1080 --left-of eDP1;
|
||||
xrandr --output eDP1 --auto --mode 1920x1080;
|
||||
xrandr --output HDMI-0 --auto --mode 1920x1080 --right-of HDMI-1-1;
|
||||
xrandr --output HDMI-1-1 --auto --mode 1920x1080 --left-of HDMI-0;
|
||||
|
||||
$(xss-lock --transfer-sleep-lock -- $HOME/.local/scripts/lock) &
|
||||
sxhkd &
|
||||
dunst &
|
||||
$(xss-lock --transfer-sleep-lock -- $HOME/.local/scripts/lock) &
|
||||
dwmblocks &
|
||||
# $HOME/.local/scripts/compositor &
|
||||
$HOME/.local/scripts/background &
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
personal_ws-1.1 en 190
|
||||
personal_ws-1.1 en 192
|
||||
Architecting
|
||||
Aryadev
|
||||
Automorphism
|
||||
@@ -53,6 +53,7 @@ artifacting
|
||||
artifacts
|
||||
automorphism
|
||||
automorphisms
|
||||
behoove
|
||||
biconnected
|
||||
bijection
|
||||
bijections
|
||||
@@ -184,6 +185,7 @@ undealt
|
||||
undebatable
|
||||
undirected
|
||||
unipotent
|
||||
unoptimised
|
||||
variadic
|
||||
vectorisation
|
||||
verifier
|
||||
|
||||
1
gdb/.gdbinit
Normal file
1
gdb/.gdbinit
Normal file
@@ -0,0 +1 @@
|
||||
set disassembly-flavor intel
|
||||
Reference in New Issue
Block a user