diff options
Diffstat (limited to '.config')
| -rw-r--r-- | .config/nyxt/commands.lisp | 9 | ||||
| -rw-r--r-- | .config/nyxt/config.lisp | 58 | ||||
| -rw-r--r-- | .config/nyxt/keybinds.lisp | 8 | ||||
| -rwxr-xr-x | .config/nyxt/scripts/weather | 3 | ||||
| -rw-r--r-- | .config/nyxt/search-engines.lisp | 45 | ||||
| -rw-r--r-- | .config/nyxt/status.lisp | 29 | ||||
| -rw-r--r-- | .config/nyxt/themes/cafebabe-dark.lisp | 37 | ||||
| -rw-r--r-- | .config/nyxt/url-redirects.lisp | 30 |
8 files changed, 219 insertions, 0 deletions
diff --git a/.config/nyxt/commands.lisp b/.config/nyxt/commands.lisp new file mode 100644 index 0000000..159916f --- /dev/null +++ b/.config/nyxt/commands.lisp @@ -0,0 +1,9 @@ +(in-package #:nyxt-user) + +(define-command-global show-weather () + (echo (uiop:run-program "~/.config/nyxt/scripts/weather" :output :string))) + +;;opens current url in different browser replace firefox with your browser/path +(define-command-global open-external-browser () + "Open the current url in external browser" + (uiop:run-program (list "firefox-bin" (render-url (url (current-buffer)))))) diff --git a/.config/nyxt/config.lisp b/.config/nyxt/config.lisp new file mode 100644 index 0000000..c28b669 --- /dev/null +++ b/.config/nyxt/config.lisp @@ -0,0 +1,58 @@ +(in-package #:nyxt-user) + +(reset-asdf-registries) + +(defvar *web-buffer-modes* + '(:emacs-mode + :blocker-mode + :force-https-mode + :reduce-tracking-mode + :user-script-mode + :no-script-mode + :no-webgl-mode)) + +(define-nyxt-user-system-and-load nyxt-user/basic-config + :components ("commands" "keybinds" "status" "url-redirects" "themes/cafebabe-dark.lisp")) + +;;; EXAMPLE +;; (define-nyxt-user-system-and-load "nyxt-user/nx-fruit-proxy" +;; :description "This proxy system saves us if nx-fruit fails to load. +;; Otherwise it will break all the config loading." +;; :depends-on ("nx-fruit")) + +(define-nyxt-user-system-and-load "nyxt-user/search-engines" + :depends-on (:nx-search-engines) :components ("search-engines")) + +(define-configuration browser + ((restore-session-on-startup-p nil) + (remote-execution-p t) + (external-editor-program + (list "emacsclient" "-cn" "-a" "" "-F")))) + +(define-configuration nyxt/mode/user-script:user-script-mode + ((nyxt/mode/user-script:user-scripts + (list + (make-instance 'nyxt/mode/user-script:user-script :base-path #p"~/.config/nyxt/scripts/4chan-x.user.js"))))) + +(define-configuration (:modable-buffer :prompt-buffer :editor-buffer) + ((default-modes `(:emacs-mode ,@%slot-value%)))) + +(define-configuration :prompt-buffer + ((dynamic-attribute-width-p t))) + +(define-configuration :web-buffer + ((search-always-auto-complete-p nil) + (global-history-p t))) + +(define-configuration :browser + ((default-new-buffer-url (quri:uri "nyxt:nyxt/mode/repl:repl")))) + +(define-configuration :web-buffer + ((default-modes `(,@*web-buffer-modes* ,@%slot-value%)))) + +(define-configuration :reduce-tracking-mode + ((query-tracking-parameters + (append '("utm_source" "utm_medium" "utm_campaign" "utm_term" "utm_content") + %slot-value%)) + (preferred-user-agent + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"))) diff --git a/.config/nyxt/keybinds.lisp b/.config/nyxt/keybinds.lisp new file mode 100644 index 0000000..3e96620 --- /dev/null +++ b/.config/nyxt/keybinds.lisp @@ -0,0 +1,8 @@ +(in-package #:nyxt-user) + +(define-configuration buffer + ((override-map (let ((map (make-keymap "my-override-map"))) + (define-key map + "M-I" 'show-weather + "C-2" 'open-external-browser) + map)))) diff --git a/.config/nyxt/scripts/weather b/.config/nyxt/scripts/weather new file mode 100755 index 0000000..0992d24 --- /dev/null +++ b/.config/nyxt/scripts/weather @@ -0,0 +1,3 @@ +#!/bin/sh + +curl wttr.in/Ludwigshafen?format=3 diff --git a/.config/nyxt/search-engines.lisp b/.config/nyxt/search-engines.lisp new file mode 100644 index 0000000..718ab11 --- /dev/null +++ b/.config/nyxt/search-engines.lisp @@ -0,0 +1,45 @@ +(in-package #:nyxt-user) + +(defvar *duckduckgo-keywords* + '(:theme :dark + :help-improve-duckduckgo nil + :homepage-privacy-tips nil + :privacy-newsletter nil + :newsletter-reminders nil + :install-reminders nil + :install-duckduckgo nil + :units-of-measure :metric + :keyboard-shortcuts t + :advertisements nil + :open-in-new-tab nil + :infinite-scroll t + :safe-search :off + :font-size :medium + :header-behavior :on-fixed + :font :helvetica + :background-color "000000") + "My DDG settings, shared between the usual, image-search and other +types of DuckDuckGo.") + +(define-configuration (buffer web-buffer) + ((search-engines (list (engines:duckduckgo-html-only :shortcut "dho") + (apply #'engines:duckduckgo + :shortcut "d" *duckduckgo-keywords*) + (apply #'engines:duckduckgo-images + :shortcut "i" *duckduckgo-keywords*) + (make-instance 'search-engine + :shortcut "aw" + :search-url "https://wiki.archlinux.org/index.php?search=~a&title=Special%3ASearch&fulltext=Search" + :fallback-url "https://wiki.archlinux.org") + (make-instance 'search-engine + :shortcut "gen" + :search-url "https://wiki.gentoo.org/index.php?title=Sepcial%3ASearch&search=~a&go=Go" + :fallback-url "https://wiki.gentoo.org") + (make-instance 'search-engine + :shortcut "lbx" + :search-url "https://search.cafebabe.gay/search.php?q=~a" + :fallback-url "https://search.cafebabe.gay") + (engines:invidious + :shortcut "yt" + :base-search-url "https://invidious.cafebabe.gay/search?q=~a" + :fallback-url "https://invidious.cafebabe.gay"))))) diff --git a/.config/nyxt/status.lisp b/.config/nyxt/status.lisp new file mode 100644 index 0000000..50d2090 --- /dev/null +++ b/.config/nyxt/status.lisp @@ -0,0 +1,29 @@ +(in-package #:nyxt-user) + +(define-configuration :status-buffer + "Display modes as short glyphs." + ((glyph-mode-presentation-p t))) + +(define-configuration :force-https-mode ((glyph "ϕ"))) +(define-configuration :reduce-tracking-mode ((glyph "τ"))) +(define-configuration :no-script-mode ((glyph "σ"))) +(define-configuration :no-webgl-mode ((glyph "ω"))) +(define-configuration :blocker-mode ((glyph "β"))) + +(define-configuration status-buffer + "Hide most of the status elements but URL and modes." + ((style (str:concat + %slot-value% + (theme:themed-css (theme *browser*) + `("#controls,#tabs" + :display none !important)))))) + +(defmethod format-status-load-status ((status status-buffer)) + "A fancier load status." + (spinneret:with-html-string + (:span (if (web-buffer-p (current-buffer)) + (case (slot-value (current-buffer) 'nyxt::status) + (:unloaded "∅") + (:loading "∞") + (:finished "")) + "")))) diff --git a/.config/nyxt/themes/cafebabe-dark.lisp b/.config/nyxt/themes/cafebabe-dark.lisp new file mode 100644 index 0000000..0ccffe1 --- /dev/null +++ b/.config/nyxt/themes/cafebabe-dark.lisp @@ -0,0 +1,37 @@ +(in-package #:nyxt-user) + +;; this automatically darkens Webkit-native interfaces and sends the +;; "prefers-color-scheme: dark" to all the supporting websites. +(setf (uiop:getenv "GTK_THEME") "Adwaita:dark") + +(define-configuration browser + ((theme (make-instance + 'theme:theme + :background-color "#000000" + :accent-color "#CD5C5C" + :accent-alt-color "#6C2429" + :warning-color "#CEFF00" + :primary-color "rgb(170, 170, 170)" + :secondary-color "rgb(100, 100, 100)")))) + +(define-configuration :dark-mode + "Overriding the ugly gray-ish default colors" + ((style + (theme:themed-css (theme *browser*) + `(* + :background-color ,(if (theme:dark-p theme:theme) + theme:background + theme:on-background) + "!important" + :background-image none "!important" + :color ,(if (theme:dark-p theme:theme) + theme:on-background + theme:background) + "!important") + `(a + :background-color ,(if (theme:dark-p theme:theme) + theme:background + theme:on-background) + "!important" + :background-image none "!important" + :color ,theme:primary "!important"))))) diff --git a/.config/nyxt/url-redirects.lisp b/.config/nyxt/url-redirects.lisp new file mode 100644 index 0000000..5069c1c --- /dev/null +++ b/.config/nyxt/url-redirects.lisp @@ -0,0 +1,30 @@ +(in-package #:nyxt-user) + +(defparameter old-reddit-handler + (url-dispatching-handler + 'old-reddit-dispatcher + (match-regex "https?\:\/\/?.*?reddit\.com") + (lambda (url) + (quri:copy-uri url :host "old.reddit.com")))) + +(defparameter invidious-handler + (url-dispatching-handler + 'invidious-dispatcher + (match-regex "https?\:\/\/?.*?(?:youtube\.com|youtu\.be|youtube-nocookie\.com).*") + (lambda (url) + (quri:copy-uri url :host "invidious.cafebabe.gay")))) + +(defparameter wikiless-handler + (url-dispatching-handler + 'wikiless-dispatcher + (match-regex "https?\:\/\/?.*?wikipedia\.org.*") + (lambda (url) + (quri:copy-uri url :host "wikiless.org")))) + +(define-configuration buffer + ((request-resource-hook + (reduce #'hooks:add-hook + (list old-reddit-handler + invidious-handler + wikiless-handler) + :initial-value %slot-default%)))) |
