Add nyxt configuration
This commit is contained in:
parent
9b7417f6c6
commit
adda08ef4a
2 changed files with 71 additions and 1 deletions
|
@ -1,4 +1,4 @@
|
||||||
MODULES=xmodmap emacs xdg shepherd dunst zsh mcron mbsync
|
MODULES=xmodmap emacs xdg shepherd dunst zsh mcron mbsync nyxt
|
||||||
|
|
||||||
STOW = stow
|
STOW = stow
|
||||||
EMACS = emacs
|
EMACS = emacs
|
||||||
|
@ -120,6 +120,10 @@ mbsync: mbsync/.config/cron/mbsync.guile
|
||||||
zsh: zsh/.profile zsh/.zshrc zsh/.zsh/functions/unzip.zwc \
|
zsh: zsh/.profile zsh/.zshrc zsh/.zsh/functions/unzip.zwc \
|
||||||
zsh/.zsh/functions/x-yank.zwc zsh/.zsh/functions/x-copy-region-as-kill.zwc
|
zsh/.zsh/functions/x-yank.zwc zsh/.zsh/functions/x-copy-region-as-kill.zwc
|
||||||
|
|
||||||
|
## Nyxt
|
||||||
|
|
||||||
|
nyxt: nyxt/.config/nyxt/init.lisp
|
||||||
|
|
||||||
## Helper
|
## Helper
|
||||||
|
|
||||||
%.el: %.org
|
%.el: %.org
|
||||||
|
|
66
nyxt/.config/nyxt/init.lisp.org
Normal file
66
nyxt/.config/nyxt/init.lisp.org
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
Always restore the previous session when the browser starts.
|
||||||
|
|
||||||
|
#+begin_src lisp
|
||||||
|
(define-configuration browser
|
||||||
|
((session-restore-prompt :always-restore)))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
I want the keys to function more like Emacs, so I enable =emacs-mode= for all buffers. I also want my downloads to go to =~/downloads= instead of =~/Downloads=.
|
||||||
|
|
||||||
|
#+begin_src lisp
|
||||||
|
(define-configuration buffer
|
||||||
|
((default-modes (append '(emacs-mode) %slot-default%))
|
||||||
|
(download-path (make-instance 'data-path :dirname "~/downloads"))
|
||||||
|
;; Bind org-capture to `C-c o c', but only in emacs-mode.
|
||||||
|
(override-map
|
||||||
|
(let ((map (make-keymap "override-map")))
|
||||||
|
(define-key map "C-c o c" 'org-capture)))))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
Set up capturing URLs with org-capture in Emacs. From https://ag91.github.io/blog/2021/07/09/org-capture-in-nyxt-taking-notes-while-browsing/.
|
||||||
|
|
||||||
|
#+begin_src lisp
|
||||||
|
(defun replace-all (string part replacement &key (test #'char=))
|
||||||
|
"Return a new string in which all the occurences of the part is replaced with replacement."
|
||||||
|
(with-output-to-string (out)
|
||||||
|
(loop with part-length = (length part)
|
||||||
|
for old-pos = 0 then (+ pos part-length)
|
||||||
|
for pos = (search part string
|
||||||
|
:start2 old-pos
|
||||||
|
:test test)
|
||||||
|
do (write-string string out
|
||||||
|
:start old-pos
|
||||||
|
:end (or pos (length string)))
|
||||||
|
when pos do (write-string replacement out)
|
||||||
|
while pos)))
|
||||||
|
|
||||||
|
(defun eval-in-emacs (&rest s-exps)
|
||||||
|
"Evaluate S-EXPS with emacsclient."
|
||||||
|
(let ((s-exps-string (replace-all
|
||||||
|
(write-to-string
|
||||||
|
`(progn ,@s-exps) :case :downcase)
|
||||||
|
;; Discard the package prefix.
|
||||||
|
"nyxt::" "")))
|
||||||
|
(format *error-output* "Sending to Emacs:~%~a~%" s-exps-string)
|
||||||
|
(uiop:run-program
|
||||||
|
(list "emacsclient" "--eval" s-exps-string))))
|
||||||
|
|
||||||
|
(define-command-global org-capture ()
|
||||||
|
"Org-capture current page."
|
||||||
|
(eval-in-emacs
|
||||||
|
`(org-link-set-parameters
|
||||||
|
"nyxt"
|
||||||
|
:store (lambda ()
|
||||||
|
(org-store-link-props
|
||||||
|
:type "nyxt"
|
||||||
|
:link ,(quri:render-uri (url (current-buffer)))
|
||||||
|
:description ,(title (current-buffer)))))
|
||||||
|
`(org-capture nil "U"))
|
||||||
|
(echo "Note stored!"))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
Start Swank so I can connect to it through Emacs.
|
||||||
|
|
||||||
|
#+begin_src lisp
|
||||||
|
(start-swank)
|
||||||
|
#+end_src
|
Loading…
Reference in a new issue