aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--LICENSE.org2
-rw-r--r--about.org19
-rw-r--r--android-chrome-192x192.pngbin0 -> 10645 bytes
-rw-r--r--android-chrome-512x512.pngbin0 -> 30050 bytes
-rw-r--r--apple-touch-icon.pngbin0 -> 9856 bytes
-rw-r--r--browserconfig.xml9
-rw-r--r--config/doom.org277
-rw-r--r--config/elfeed.org2
-rw-r--r--config/qtile.org169
-rw-r--r--config/qutebrowser.org5
-rw-r--r--favicon-16x16.pngbin0 -> 1068 bytes
-rw-r--r--favicon-32x32.pngbin0 -> 1449 bytes
-rw-r--r--favicon.icobin0 -> 15086 bytes
-rw-r--r--img/churchill.pngbin0 -> 296744 bytes
-rw-r--r--img/drawing-old.pngbin0 -> 52643 bytes
-rw-r--r--img/drawing.pngbin0 -> 1019 bytes
-rw-r--r--img/favicon.icobin0 -> 1150 bytes
-rw-r--r--img/relativity1.jpgbin0 -> 99304 bytes
-rw-r--r--img/relativity2.jpgbin0 -> 116362 bytes
-rw-r--r--img/relativity2.jpg~bin0 -> 127432 bytes
-rw-r--r--index.org17
-rw-r--r--journal/20231208.org22
-rw-r--r--journal/20231209.org13
-rw-r--r--journal/20231210.org17
-rw-r--r--journal/20231213.org13
-rw-r--r--journal/20231214.org14
-rw-r--r--journal/20231215.org12
-rw-r--r--journal/20231217.org12
-rw-r--r--journal/20231220.org12
-rw-r--r--journal/20240110.org13
-rw-r--r--journal/20240123.org24
-rw-r--r--journal/20240124.org17
-rw-r--r--journal/index.org23
-rw-r--r--mindmap/Fourier Transform.org12
-rw-r--r--mindmap/Lagrangian mechanics.org106
-rw-r--r--mindmap/Legendre Transformation.org31
-rw-r--r--mindmap/Lorentz Force.org21
-rw-r--r--mindmap/Maxwell's Equations.org78
-rw-r--r--mindmap/Newtonian mechanics.org9
-rw-r--r--mindmap/conservative force.org2
-rw-r--r--mindmap/continuity equation.org24
-rw-r--r--mindmap/del operator.org13
-rw-r--r--mindmap/derivative.org8
-rw-r--r--mindmap/divergence theorem.org17
-rw-r--r--mindmap/duality.org8
-rw-r--r--mindmap/electrostatics.org6
-rw-r--r--mindmap/emergence.org35
-rw-r--r--mindmap/factorial.org9
-rw-r--r--mindmap/function.org2
-rw-r--r--mindmap/group.org3
-rw-r--r--mindmap/index.org54
-rw-r--r--mindmap/induction.org3
-rw-r--r--mindmap/infinity.org18
-rw-r--r--mindmap/inverse square.org6
-rw-r--r--mindmap/logic.org14
-rw-r--r--mindmap/magnetostatics.org91
-rw-r--r--mindmap/mathematics.org5
-rw-r--r--mindmap/natural number.org6
-rw-r--r--mindmap/physics.org25
-rw-r--r--mindmap/recursion.org22
-rw-r--r--mindmap/special relativity.org68
-rw-r--r--mstile-150x150.pngbin0 -> 7205 bytes
-rw-r--r--robots.txt2
-rw-r--r--safari-pinned-tab.svg4100
-rw-r--r--site.webmanifest19
-rw-r--r--style.css438
66 files changed, 5435 insertions, 512 deletions
diff --git a/LICENSE.org b/LICENSE.org
index df18b21..0c2a051 100644
--- a/LICENSE.org
+++ b/LICENSE.org
@@ -5,7 +5,7 @@
#+date: <2023-06-11 Sun>
#+language: en
-Copyright ยฉ 2023 Preston Pan
+Copyright ยฉ 2024 Preston Pan
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the โ€œSoftwareโ€), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
diff --git a/about.org b/about.org
index a3b3b9c..fe95fea 100644
--- a/about.org
+++ b/about.org
@@ -5,20 +5,33 @@
#+language: en
#+OPTIONS: broken-links:t
#+date: <2023-06-26 Mon>
+#+html_head: <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
+#+html_head: <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
+#+html_head: <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
+#+html_head: <link rel="manifest" href="/site.webmanifest">
+#+html_head: <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
+#+html_head: <meta name="msapplication-TileColor" content="#da532c">
+#+html_head: <meta name="theme-color" content="#ffffff">
* About Me
-Some might know me as ret2pop, some as Preston Pan, and
-others as [[https://preston.nullring.xyz][LiCoO2]].
+** whoami?
+[[https://preston.nullring.xyz][Preston Pan]]. Although, that is not really important for the enjoyment of ret2pop, and
+it is certainly not the focus at all. Ret2pop is a separate entity, controlled only
+by the will of Francois. Ret2pop is a relentlessly curious force willing to entertain
+ideas that are unconventional and unorthodox; Preston Pan is the individual that tries
+to live this out and fails in a somewhat cringy manner.
+Some might know me as ret2pop, some as Preston Pan, and others as LiCoO2.
** Contact
Here are all the methods you should use to contact me:
*** IRC
- ret2pop on libera.chat
- Note: I will not always be online and I don't use a bouncer on this server. Email me to coordinate a time if you really need to reach me this way.
-- LiCoO2 on [[https://andrei.rm-r.org/irc][the best irc server]].
*** Email
- preston@nullring.xyz
- ret2pop@gmail.com
+*** Amateur Radio (In case the world ends)
+My callsign is ~VE7PPN~.
* Professional
For now, you should consult [[https://preston.nullring.xyz/about/index.html][my other website]], but I will make
diff --git a/android-chrome-192x192.png b/android-chrome-192x192.png
new file mode 100644
index 0000000..653f43d
--- /dev/null
+++ b/android-chrome-192x192.png
Binary files differ
diff --git a/android-chrome-512x512.png b/android-chrome-512x512.png
new file mode 100644
index 0000000..864b240
--- /dev/null
+++ b/android-chrome-512x512.png
Binary files differ
diff --git a/apple-touch-icon.png b/apple-touch-icon.png
new file mode 100644
index 0000000..1e3ed09
--- /dev/null
+++ b/apple-touch-icon.png
Binary files differ
diff --git a/browserconfig.xml b/browserconfig.xml
new file mode 100644
index 0000000..b3930d0
--- /dev/null
+++ b/browserconfig.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<browserconfig>
+ <msapplication>
+ <tile>
+ <square150x150logo src="/mstile-150x150.png"/>
+ <TileColor>#da532c</TileColor>
+ </tile>
+ </msapplication>
+</browserconfig>
diff --git a/config/doom.org b/config/doom.org
index 480c4c6..5e77b70 100644
--- a/config/doom.org
+++ b/config/doom.org
@@ -32,84 +32,92 @@ To display the battery percentage:
#+begin_src emacs-lisp :tangle yes
(display-battery-mode 1)
#+end_src
+** Transparency
+Let's make emacs transparent.
+#+begin_src emacs-lisp :tangle yes
+(set-frame-parameter nil 'alpha-background 90)
+
+(add-to-list 'default-frame-alist '(alpha-background . 90))
+#+end_src
** EXWM
First we load our packages:
#+begin_src emacs-lisp :tangle yes
-(use-package! exwm)
-(use-package! exwm-config)
-(exwm-config-example)
+;; (use-package! exwm)
+;; (use-package! exwm-config)
+;; (exwm-config-example)
#+end_src
Now, we set our keybindings:
#+begin_src emacs-lisp :tangle yes
-(setq exwm-input-global-keys
- `(
- ([?\s-r] . exwm-reset)
- ([?\s-w] . exwm-workspace-switch)
- ,@(mapcar (lambda (i)
- `(,(kbd (format "s-%d" i)) .
- (lambda ()
- (interactive)
- (exwm-workspace-switch-create ,i))))
- (number-sequence 0 9))
- ([?\s-&] . (lambda (command)
- (interactive (list (read-shell-command "$ ")))
- (start-process-shell-command command nil command)))
-
- ([?\s-d] . (lambda ()
- (interactive)
- (dired default-directory)))
-
- ([?\s-f] . (lambda ()
- (interactive)
- (exwm-layout-toggle-mode-line)
- (exwm-workspace-toggle-minibuffer)))
-
- ([?\s-b] . exwm-workspace-switch-to-buffer)
-
-
- ([?\s-w] . (lambda ()
- (interactive)
- (start-process "" nil "qutebrowser")))
- ([?\s-n] . (lambda ()
- (interactive)
- (start-process "" nil "nyxt")))
- ([?\s-k] . (lambda ()
- (interactive)
- (start-process "" nil "krita")))
- ([?\s-g] . (lambda ()
- (interactive)
- (start-process "" nil "gimp")))
- ([?\s-b] . (lambda ()
- (interactive)
- (start-process "" nil "blender")))
- ([?\s-c] . (lambda ()
- (interactive)
- (start-process "" nil "chromium")))
- ([s-f2] . (lambda ()
- (interactive)
- (start-process "" nil "/usr/bin/slock")))))
+;; (setq exwm-input-global-keys
+;; `(
+;; ([?\s-r] . exwm-reset)
+;; ([?\s-w] . exwm-workspace-switch)
+;; ,@(mapcar (lambda (i)
+;; `(,(kbd (format "s-%d" i)) .
+;; (lambda ()
+;; (interactive)
+;; (exwm-workspace-switch-create ,i))))
+;; (number-sequence 0 9))
+;; ([?\s-&] . (lambda (command)
+;; (interactive (list (read-shell-command "$ ")))
+;; (start-process-shell-command command nil command)))
+
+;; ([?\s-d] . (lambda ()
+;; (interactive)
+;; (dired default-directory)))
+
+;; ([?\s-f] . (lambda ()
+;; (interactive)
+;; (exwm-layout-toggle-mode-line)
+;; (exwm-workspace-toggle-minibuffer)))
+
+;; ([?\s-b] . exwm-workspace-switch-to-buffer)
+
+
+;; ([?\s-w] . (lambda ()
+;; (interactive)
+;; (start-process "" nil "qutebrowser")))
+;; ([?\s-n] . (lambda ()
+;; (interactive)
+;; (start-process "" nil "nyxt")))
+;; ([?\s-k] . (lambda ()
+;; (interactive)
+;; (start-process "" nil "krita")))
+;; ([?\s-g] . (lambda ()
+;; (interactive)
+;; (start-process "" nil "gimp")))
+;; ([?\s-b] . (lambda ()
+;; (interactive)
+;; (start-process "" nil "blender")))
+;; ([?\s-c] . (lambda ()
+;; (interactive)
+;; (start-process "" nil "chromium")))
+;; ([s-f2] . (lambda ()
+;; (interactive)
+;; (start-process "" nil "/usr/bin/slock")))))
#+end_src
And we also need to set up our media keys:
#+begin_src emacs-lisp :tangle yes
-(exwm-input-set-key (kbd "<XF86AudioNext>") 'emms-next)
-(exwm-input-set-key (kbd "<XF86AudioPrev>") 'emms-previous)
-(exwm-input-set-key (kbd "<XF86AudioPlay>") 'emms-pause)
-(exwm-input-set-key
- (kbd "<XF86AudioRaiseVolume>")
- (lambda ()
- (interactive) (start-process-shell-command
- "pactl" nil "pactl set-sink-volume 0 +5% && pactl set-sink-volume 1 +5%")))
-(exwm-input-set-key
- (kbd "<XF86AudioLowerVolume>")
- (lambda ()
- (interactive) (start-process-shell-command
- "pactl" nil "pactl set-sink-volume 0 -5% && pactl set-sink-volume 1 -5%")))
-(exwm-input-set-key
- (kbd "<XF86AudioMute>")
- (lambda ()
- (interactive) (start-process-shell-command
- "pactl" nil "pactl set-sink-mute 0 toggle && pactl set-sink-mute 1 toggle")))
+;; (exwm-input-set-key (kbd "<XF86AudioNext>") 'emms-next)
+;; (exwm-input-set-key (kbd "<XF86AudioPrev>") 'emms-previous)
+;; (exwm-input-set-key (kbd "<XF86AudioPlay>") 'emms-pause)
+;; (exwm-input-set-key
+;; (kbd "<XF86AudioRaiseVolume>")
+;; (lambda ()
+;; (interactive) (start-process-shell-command
+;; "pactl" nil "pactl set-sink-volume 0 +5% && pactl set-sink-volume 1 +5%")))
+;; (exwm-input-set-key
+;; (kbd "<XF86AudioLowerVolume>")
+;; (lambda ()
+;; (interactive) (start-process-shell-command
+;; "pactl" nil "pactl set-sink-volume 0 -5% && pactl set-sink-volume 1 -5%")))
+;; (exwm-input-set-key
+;; (kbd "<XF86AudioMute>")
+;; (lambda ()
+;; (interactive) (start-process-shell-command
+;; "pactl" nil "pactl set-sink-mute 0 tog
+;; gle && pactl set-sink-mute 1 toggle")))
;; Things to implement in exwm:
;;Key([], 'XF86MonBrightnessUp', lazy.spawn("light -A 10")),
;;Key([], 'XF86MonBrightnessDown', lazy.spawn("light -U 10")),
@@ -118,24 +126,26 @@ And we also need to set up our media keys:
** Font
Now we configure fonts:
#+begin_src emacs-lisp :tangle yes
-(setq doom-font (font-spec :family "FiraCode Nerd Font" :size 14 :weight 'semi-light)
- doom-variable-pitch-font (font-spec :family "Fira Sans" :size 14)
- doom-unicode-font (font-spec :family "Symbola" :size 14)
- doom-serif-font (font-spec :family "Fira Sans" :size 14)
- doom-big-font (font-spec :family "FiraCode Nerd Font" :size 28))
+(setq doom-font (font-spec :family "Hack" :size 16 :weight 'semi-light)
+ doom-variable-pitch-font (font-spec :family "Fira Sans" :size 16)
+ doom-unicode-font (font-spec :family "Symbola" :size 16)
+ doom-serif-font (font-spec :family "Fira Sans" :size 16)
+ doom-big-font (font-spec :family "Hack" :size 28))
#+end_src
** Color Scheme
I'm experimenting with many themes right now. One of these themes is the city-lights theme, another one of them
is the catppuccin theme.
#+begin_src emacs-lisp :tangle yes
-(setq doom-theme 'doom-ayu-light)
-;; (setq doom-theme 'doom-rouge)
+;; (setq doom-theme 'doom-ayu-light)
+(setq doom-theme 'doom-miramare)
;; (setq catppuccin-flavor 'mocha)
+;; (load-theme 'catppuccin)
#+end_src
** Doom Module and Programs Configuration
*** Agenda
Now we add these two files to our agenda search path:
#+begin_src emacs-lisp :tangle yes
+(require 'org-habit)
(setq org-agenda-files (list "~/org/agenda.org"
"~/org/contacts.org"
"~/org/notes.org"))
@@ -148,23 +158,29 @@ And we also want to set up org-habit to start graphing our habits as soon as pos
*** IRC
Set up circe to connect to my bouncer:
#+begin_src emacs-lisp :tangle yes
-(after! circe
- (set-irc-server! "nullring.xyz"
- `(:tls t
- :port 4095
- :nick "LiCoO2/AndreiNet"
- :user "LiCoO2/AndreiNet"
- :pass ,(+pass-get-secret "ZNC"))))
+;; (after! circe
+;; (set-irc-server! "nullring.xyz"
+;; `(:tls t
+;; :port 4095
+;; :nick "LiCoO2/AndreiNet"
+;; :user "LiCoO2/AndreiNet"
+;; :pass ,(+pass-get-secret "ZNC"))))
#+end_src
And another to connect to libera:
#+begin_src emacs-lisp :tangle yes
-(set-irc-server! "irc.libera.chat"
+(after! circe (set-irc-server! "irc.libera.chat"
`(:tls t
:port 6697
:nick "ret2pop"
:sasl-username "ret2pop"
:sasl-password (lambda (&rest _) (+pass-get-secret "libera.chat"))
- :channels ("#emacs" "#rwx")))
+ :channels ("#emacs" "#rwx"))))
+#+end_src
+#+begin_src emacs-lisp :tangle yes
+(after! circe (set-irc-server! "nullring.xyz"
+ `(:tls t
+ :port 6697
+ :nick "LiCoO2")))
#+end_src
*** Email
In order to use this configuration, you must install and configure mu and mbsync.
@@ -210,6 +226,7 @@ We want the default search engine of eww to be google because duckduckgo is bad:
(setq search-engine-default "google")
(setq eww-search-prefix "https://google.com/search?q=")
+(setq browse-url-secondary-browser-function 'browse-url-generic browse-url-generic-program "qutebrowser")
(setq browse-url-browser-function 'eww-browse-url)
(add-hook 'eww-mode-hook
(lambda () (local-set-key (kbd "y Y") #'eww-copy-page-url)))
@@ -218,11 +235,41 @@ We want the default search engine of eww to be google because duckduckgo is bad:
In order to use this configuration, you must have mpd configured to use the same directory.
We automatically connect to mpd.
#+begin_src emacs-lisp :tangle yes
+(emms-all)
+(setq emms-source-file-default-directory (expand-file-name "~/music/"))
(setq emms-player-mpd-music-directory "~/music/")
+(setq emms-player-mpd-server-name "localhost")
+(setq emms-player-mpd-server-port "6600")
(setq emms-player-list '(emms-player-mpd))
-(emms-all)
+(add-to-list 'emms-info-functions 'emms-info-mpd)
+(add-to-list 'emms-player-list 'emms-player-mpd)
(emms-player-mpd-connect)
#+end_src
+** Keybindings
+Now we set up our keybindings for our applications:
+#+begin_src emacs-lisp :tangle yes
+(map! :leader
+ :desc "Open irc"
+ "i c" #'circe)
+(map! :leader
+ :desc "Open audio manager"
+ "m m" #'emms)
+(map! :leader
+ :desc "Open RSS feed reader"
+ "r s" #'elfeed)
+(map! :leader
+ :desc "Open password manager"
+ "p w" #'ivy-pass)
+(map! :leader
+ :desc "Open dictionary program"
+ "d i" #'dictionary)
+(map! :leader
+ :desc "Open rtorrent frontend"
+ "r t" #'mentor)
+(map! :leader
+ :desc "Open eww web browser"
+ "e w" #'eww)
+#+end_src
*** Journal
First we set the journal to be in the website directory:
#+begin_src emacs-lisp :tangle yes
@@ -241,6 +288,7 @@ And then we add the headers needed to export the journal automatically:
(`yearly "#+TITLE: Yearly Journal\n#+STARTUP: folded"))))
(setq org-journal-file-header 'org-journal-file-header-func)
+(setq org-export-with-section-numbers nil)
(setq org-journal-file-format "%Y%m%d.org")
#+end_src
To add everything to the agenda search path, we toggle:
@@ -276,13 +324,12 @@ In order to publish my website, we need to configure emacs to publish it somewhe
:auto-preamble t)
("website-static"
:base-directory "~/org/website"
- :base-extension "css\\|js\\|png\\|jpg\\|gif\\|pdf\\|mp3\\|ogg\\|swf"
+ :base-extension "css\\|js\\|png\\|jpg\\|gif\\|pdf\\|mp3\\|ogg\\|swf\\|ico"
:publishing-directory "~/website_html/"
:recursive t
:publishing-function org-publish-attachment)
- ("website" :components ("website-org" "website-static"))))
-
-
+ ("website" :auto-sitemap t :components ("website-org" "website-static"))))
+(setq org-html-postamble "Copyright (c) 2024 Preston Pan")
#+end_src
*** Contacts
Now we configure org-contacts, which allows me to store contacts in an org mode file:
@@ -308,31 +355,6 @@ Sometimes I want a timer to help me keep track of the time.
#+begin_src emacs-lisp :tangle yes
(setq org-clock-sound "~/audio/ding.wav")
#+end_src
-** Keybindings
-Now we set up our keybindings for our applications:
-#+begin_src emacs-lisp :tangle yes
-(map! :leader
- :desc "Open irc"
- "i c" #'circe)
-(map! :leader
- :desc "Open audio manager"
- "m m" #'emms)
-(map! :leader
- :desc "Open RSS feed reader"
- "r s" #'elfeed)
-(map! :leader
- :desc "Open password manager"
- "p w" #'ivy-pass)
-(map! :leader
- :desc "Open dictionary program"
- "d i" #'dictionary)
-(map! :leader
- :desc "Open rtorrent frontend"
- "r t" #'mentor)
-(map! :leader
- :desc "Open eww web browser"
- "e w" #'eww)
-#+end_src
** External Packages
we want to include some packages that don't come with doom emacs.
*** KBD-Mode
@@ -393,9 +415,26 @@ We use ednc to manage notifications.
#+end_src
*** Mastodon
#+begin_src emacs-lisp :tangle yes
-(setq mastodon-instance-url "https://types.pl"
- mastodon-active-user "ret2pop")
+(setq mastodon-instance-url "https://types.pl")
+(setq mastodon-active-user "ret2pop")
+#+end_src
+*** Ement
+#+begin_src emacs-lisp :tangle yes
+;; (ement-connect :uri-prefix "http://localhost:8009")
#+end_src
+*** Stem
+I wrote a [[https://github.com/ret2pop/stem-mode][major mode]] for my programming language [[https://github.com/ret2pop/stem][stem]].
+#+begin_src emacs-lisp :tangle yes
+(use-package stem-mode)
+(add-to-list 'auto-mode-alist '("\\.stem\\'" . stem-mode))
+#+end_src
+*** Tufte
+Our website uses the tufte css styling and we must therefore tell emacs to generate html that is compliant with this html:
+#+begin_src emacs-lisp
+(use-package! ox-tufte)
+(use-package! plan9-theme)
+#+end_src
+
* packages.el Configuration
These are some external packages that I use that are not provided by doom modules.
#+begin_src emacs-lisp :tangle packages.el
@@ -424,6 +463,8 @@ These are some external packages that I use that are not provided by doom module
(package! go-translate)
(package! ts)
(package! chess)
+(package! ox-tufte)
+(package! plan9-theme)
#+end_src
* init.el Configuration
@@ -552,7 +593,7 @@ This installs all the doom modules that we are going to be configuring:
;;gdscript ; the language you waited for
(go +lsp)
;;(graphql +lsp) ; Give queries a REST
- ;;(haskell +lsp) ; a language that's lazier than I am
+ (haskell +lsp) ; a language that's lazier than I am
;;hy ; readability of scheme w/ speed of python
;;idris ; a language you can depend on
(json +lsp)
@@ -584,7 +625,7 @@ This installs all the doom modules that we are going to be configuring:
(scheme +guile)
(sh +fish +lsp)
;;sml
- ;;solidity ; do you need a blockchain? No.
+ solidity ; do you need a blockchain? No.
;;swift ; who asked for emoji variables?
;;terra ; Earth and Moon in alignment for performance.
(web +lsp)
diff --git a/config/elfeed.org b/config/elfeed.org
index ca942ea..94fdbf5 100644
--- a/config/elfeed.org
+++ b/config/elfeed.org
@@ -18,6 +18,8 @@ Here are some interesting blogs, many of which are from substack.
** News :news:
These are the news articles that I subscribe to. Some of these are politics related
but I mostly just want to inform myself about technology subjects.
+*** https://www.wired.com/feed/tag/ai/latest/rss
+*** https://www.wired.com/feed/category/science/latest/rss
*** https://feeds.washingtonpost.com/rss/politics?itid=lk_inline_manual_2
*** https://news.ycombinator.com/rss
diff --git a/config/qtile.org b/config/qtile.org
index 04bcb12..537bab5 100644
--- a/config/qtile.org
+++ b/config/qtile.org
@@ -30,7 +30,7 @@ import subprocess
mod = "mod4"
-terminal = guess_terminal()
+terminal = "kitty"
wl_import_rules = None
auto_minimize = True
wmname = "LG3D"
@@ -38,8 +38,9 @@ wmname = "LG3D"
** Hex Colors
We then load the catppuccin colors for the bar and window borders.
#+begin_src python :tangle config.py
-def get_colors():
- return [
+def get_colors(theme):
+ if theme == "city-lights":
+ return [
# Normal colors
'#45475a',
'#f38ba8',
@@ -65,8 +66,33 @@ def get_colors():
# foreground
'#cdd6f4',
]
+ elif theme == "gruvbox":
+ return [
+ # normal colors
+ '#282828',
+ '#cc241d',
+ '#98971a',
+ '#d79921',
+ '#458588',
+ '#b16286',
+ '#689d6a',
+ '#a89984',
+ #bright colors
+ '#928374',
+ '#fb4934',
+ '#b8bb26',
+ '#fabd2f',
+ '#83a598',
+ '#d3869b',
+ '#8ec07c',
+ '#ebdbb2',
+ # background
+ '#282828',
+ # foreground
+ '#ebdbb2',
+ ]
-colors = get_colors()
+colors = get_colors("gruvbox")
#+end_src
** Keybindings
The _keys_ variable is going to be our final list of keybindings. We start by initializing it
@@ -123,6 +149,7 @@ keys.extend([
Key([mod], "g", lazy.spawn("gimp"), desc="Run GIMP"),
Key([mod], "t", lazy.spawn("torbrowser-launcher"), desc="Run Tor Browser"),
Key([mod], "i", lazy.spawn("emacsclient --eval \"(emacs-everywhere)\""), desc="Emacs Everywhere!"),
+ Key([mod], "d", lazy.spawn("dmenu_run"), desc="dmenu"),
])
#+end_src
*** XF86
@@ -173,7 +200,7 @@ layouts = [
# layout.Stack(num_stacks=2),
# layout.Bsp(),
# layout.Matrix(),
- # layout.MonadTall(),
+ layout.MonadTall(border_focus=colors[2], border_normal=colors[0], border_width=4, margin=7),
# layout.MonadWide(),
# layout.RatioTile(),
# layout.Tile(),
@@ -195,40 +222,120 @@ widget_defaults = dict(
)
extension_defaults = widget_defaults.copy()
+# screens = [
+# Screen(
+# top=bar.Bar(
+# [
+# # widget.CurrentLayout(),
+# widget.GroupBox(active=colors[6], inactive=colors[15], this_current_screen_border=colors[4], highlight_colorsr=colors[3]),
+# widget.Prompt(),
+# widget.WindowName(),
+# widget.Chord(
+# chords_colors={
+# "launch": ("#ff0000", "#ffffff"),
+# },
+# name_transform=lambda name: name.upper(),
+# ),
+# # widget.StatusNotifier(),
+
+# widget.Systray(),
+# widget.Battery(charge_char="๐Ÿ”‹", discharge_char="๐Ÿ”‹", full_char="๐Ÿ”‹", format="{char} {percent:2.0%}"),
+# # widget.TextBox("|", foreground=colors[1]),
+# widget.Sep(padding=16, size_percent=80, foreground=colors[1]),
+# widget.Clock(format="๐Ÿ•’ %a %I:%M %p"),