refactore directory structure

This commit is contained in:
Chris Cochrun 2023-06-09 06:06:37 -05:00
parent 3830eef1f4
commit e87bfb7c39
485 changed files with 66 additions and 1696 deletions

View file

@ -0,0 +1,16 @@
(DEFINE-CONFIGURATION NYXT/REDUCE-TRACKING-MODE:REDUCE-TRACKING-MODE
((VISIBLE-IN-STATUS-P NIL)))
(DEFINE-CONFIGURATION NYXT/FORCE-HTTPS-MODE:FORCE-HTTPS-MODE
((VISIBLE-IN-STATUS-P NIL)))
(DEFINE-CONFIGURATION NYXT/AUTO-MODE:AUTO-MODE
((VISIBLE-IN-STATUS-P NIL)))
(DEFINE-CONFIGURATION NYXT/CERTIFICATE-EXCEPTION-MODE:CERTIFICATE-EXCEPTION-MODE
((VISIBLE-IN-STATUS-P NIL)))
(DEFINE-CONFIGURATION NYXT/HELP-MODE:HELP-MODE
((VISIBLE-IN-STATUS-P NIL)))
(DEFINE-CONFIGURATION NYXT/WEB-MODE:WEB-MODE
((VISIBLE-IN-STATUS-P NIL)))
(DEFINE-CONFIGURATION NYXT/VI-MODE:USER-VI-NORMAL-MODE
((VISIBLE-IN-STATUS-P NIL)))
(DEFINE-CONFIGURATION BUFFER
((CURRENT-ZOOM-RATIO 0.75)))

24
.config/nyxt/glyphs.lisp Normal file
View file

@ -0,0 +1,24 @@
(in-package #:nyxt-user)
;;allow setting glyphs
(define-configuration status-buffer
((glyph-mode-presentation-p t)))
;;various glyph settings with no additional configs
(define-configuration nyxt/force-https-mode:force-https-mode ((glyph "ϕ")))
(define-configuration nyxt/blocker-mode:blocker-mode ((glyph "β")))
(define-configuration nyxt/proxy-mode:proxy-mode ((glyph "π")))
(define-configuration nyxt/reduce-tracking-mode:reduce-tracking-mode ((glyph "∅")))
(define-configuration nyxt/certificate-exception-mode:certificate-exception-mode ((glyph "ɛ")))
(define-configuration nyxt/style-mode:style-mode ((glyph "s")))
(define-configuration nyxt/help-mode:help-mode ((glyph "?")))
;;configure web mode hints to home row and set glyph
(define-configuration nyxt/web-mode:web-mode
((nyxt/web-mode:hints-alphabet "ASDFGHJKL")
(glyph "ω")))
;;auto-mode config and set glyph
(define-configuration nyxt/auto-mode:auto-mode
((nyxt/auto-mode:prompt-on-mode-toggle t)
(glyph "α")))

255
.config/nyxt/init.lisp Normal file
View file

@ -0,0 +1,255 @@
(in-package #:nyxt-user) ; While implicit, this allows SLY to know which package we are in.
(dolist (file (list (nyxt-init-file "slynk.lisp"))))
(dolist (file (list (nyxt-init-file "glyphs.lisp"))))
(load-after-system :slynk (nyxt-init-file "slynk.lisp"))
;; (defvar *chris-prompt-keymap (make-keymap "chris-prompt-map"))
;; (define-key *chris-prompt-keymap*
;; "escape" 'cancel-input
;; "C-j" 'select-next
;; "C-k" 'select-previous)
;; (define-mode chris-prompt-mode ()
;; "Dummy mode for the custom key bindings in `*chris-prompt-keymap*'."
;; ((keymap-scheme (keymap:make-scheme
;; scheme:vi-insert *chris-prompt-keymap*))
;; (visible-in-status-p nil)))
;; Always restore history and don't ask
(define-configuration browser
((session-restore-prompt :always-restore)))
(define-configuration (prompt-buffer)
((default-modes
(append
'(vi-insert-mode)
%slot-default%))))
(define-configuration browser
((external-editor-program '("/usr/bin/emacsclient"))))
;; Create a function to launch mpv with given url
(defun mpv (url)
"MPV launches with given url using the fast profile."
(uiop:launch-program (list "mpv" "--profile=fast" url "&")))
;; Create a function to download videos with youtube-dl in alacritty
(defun youtube-dl (url)
"Download videos and audio with youtube-dl in alacritty for feedback"
(uiop:launch-program
(list "alacritty" "-e" "yt-dlp" "-o ~/Videos/%(title)s.%(ext)s" url)))
;; Let's create a function to hint videos, convert the url to a sting, and play them in MPV
(define-command hint-mpv (&key nyxt/web-mode::annotate-visible-only-p)
"Show a set of element hints, and copy the URL of the user inputted one."
(nyxt/web-mode:query-hints "Copy element URL"
(lambda (nyxt/web-mode::result)
;; this converts the url to a string to be used in mpv
(let*
((url
(format nil "~a"
(url (first nyxt/web-mode::result)))))
;; here we take that string and pipe it into mpv
(mpv url)))
:annotate-visible-only-p
nyxt/web-mode::annotate-visible-only-p))
;; Let's create a function to hint videos, convert the url to a sting, and download with ytdl
(define-command hint-ytdl (&key nyxt/web-mode::annotate-visible-only-p)
"Show a set of element hints, and copy the URL of the user inputted one."
(nyxt/web-mode:query-hints "Copy element URL"
(lambda (nyxt/web-mode::result)
;; this converts the url to a string to be used in yt-dlp
(let*
((url
(format nil "~a"
(url (first nyxt/web-mode::result)))))
;; here we take that string and pipe it into yt-dlp
(youtube-dl url)))
:annotate-visible-only-p
nyxt/web-mode::annotate-visible-only-p))
;; These are my own keys that are layered over vi-normal. A lot of these
;; are similar to qutebrowser.
(defvar *chris-keymap* (make-keymap "chris-map"))
(define-key *chris-keymap*
"K" 'switch-buffer-next
"J" 'switch-buffer-previous
"b" 'switch-buffer
"v" 'hint-mpv
"V" 'hint-ytdl
"d" 'delete-current-buffer
"D" 'delete-buffer
"r" 'reload-current-buffer
"R" 'reload-buffers)
(define-mode chris-mode ()
"Dummy mode for the custom key bindings in `*chris-keymap*'."
((keymap-scheme
(keymap:make-scheme
scheme:vi-normal *chris-keymap*))
(visible-in-status-p nil)))
(define-configuration buffer
((default-modes
(append
'(vi-normal-mode
auto-mode
reduce-tracking-mode
force-https-mode
chris-mode)
%slot-default%))))
(define-configuration buffer
((search-engines
(list
(make-instance 'search-engine
:shortcut "s"
:search-url "https://search.tfcconnection.org/?q=~a"
:fallback-url "https://search.tfcconnection.org")))))
(define-configuration nyxt/vi-mode:vi-normal-mode
((visible-in-status-p nil)))
(define-configuration nyxt/vi-mode:vi-insert-mode
((visible-in-status-p nil)))
(define-configuration status-buffer
((style
(str:concat
%slot-default%
(cl-css:css
'((body
:background "#282a36"
:color "#e2e4e5"
:line-height "1fr")
("#container-vi"
:grid-template-columns "0px 30px 2fr 0px 240px")
("#controls"
:background-color "#282a36"
:color "#f3f99d"
:width "0px"
:padding-left "0px"
:hidden)
("#url"
:background-color "#282a36"
:color "#5af78e")
("#modes"
:background-color "#282a36"
:color "#f3f99d")
("#tabs"
:background-color "#282a36"
:color "#5af78e")
(".tab"
:background-color "#282a36"
:color "#9aedfe")
(".tab:hover"
:background-color "#282a36"
:color "#f1f1f0")
(".button"
:background-color "#282a36"
:color "#5af78e")
(".button:hover"
:background-color "#282a36"
:color "#f1f1f0")
(".arrow"
:width "0px"
:height "0px")
(".arrow-right"
:background-color "#282a36"
:color "#5af78e")
(".arrow-left"
:background-color "#282a36"
:color "#5af78e")
))))))
(define-configuration internal-buffer
((style
(str:concat
%slot-default%
(cl-css:css
'((body
:background "#282a36"
:color "#e2e4e5")
(.button
:color "#e2e4e5")))))))
(define-configuration window
((message-buffer-style
(str:concat
%slot-default%
(cl-css:css
'((body
:background-color "#282a36"
:color "#e2e4e5")))))))
(define-configuration prompt-buffer
((style
(str:concat
%slot-default%
(cl-css:css
'((body
:background-color "#282a36"
:color "#e2e4e5")
("#prompt-area-vi"
:background-color "#282a36"
:color "#57c7ff")
("#prompt"
:background-color "#282a36"
:color "#e2e4e5")
("#input"
:background-color "#282a36"
:color "#e2e4e5")
("#suggestions"
:background-color "#282a36"
:color "#e2e4e5")
(.vi-insert-mode
:background-color "#282a36")
(.vi-normal-mode
:background-color "#282a36")
(.source
:margin-left "5px")
(.source-name
:background-color "#282a36"
:color "#e2e4e5")
(.source-content
:background-color "#282a36"
:color "#e2e4e5")
;; (".source-content td"
;; :background-color "#282a36"
;; :color "#e2e4e5")
(".source-content th"
:background-color "#43454f"
:color "#e2e4e5")
("#selection"
:background-color "#57c7ff"
:color "#34353e")
(.marked
:background-color "#5af78e"
:color "#34353e")
(.selected
:background-color "#57c7ff"
:color "#34353e")
(.button
:color "#e2e4e5")))))))
(in-package #:nyxt-user) ; While implicit, this allows SLY to know which package we are in.
;; (load "~/quicklisp/setup.lisp")
;; (ql:quickload :slynk)
;; (define-command-global start-slynk (&optional (slynk-port *swank-port*))
;; "Start a Slynk server that can be connected to, for instance, in
;; Emacs via SLY.
;; Warning: This allows Nyxt to be controlled remotely, that is, to execute
;; arbitrary code with the privileges of the user running Nyxt. Make sure
;; you understand the security risks associated with this before running
;; this command."
;; (slynk:create-server :port slynk-port :dont-close t)
;; (echo "Slynk server started at port ~a" slynk-port))
;; (start-slynk)

17
.config/nyxt/slynk.lisp Normal file
View file

@ -0,0 +1,17 @@
(in-package #:nyxt-user) ; While implicit, this allows SLY to know which package we are in.
(load "~/quicklisp/setup.lisp")
(ql:quickload :slynk)
(define-command-global start-slynk (&optional (slynk-port *swank-port*))
"Start a Slynk server that can be connected to, for instance, in
Emacs via SLY.
Warning: This allows Nyxt to be controlled remotely, that is, to execute
arbitrary code with the privileges of the user running Nyxt. Make sure
you understand the security risks associated with this before running
this command."
(slynk:create-server :port slynk-port :dont-close t)
(echo "Slynk server started at port ~a" slynk-port))
(start-slynk)