diff --git a/.config/yadm/bootstrap b/.config/yadm/bootstrap
index ddc6d5a..9bdab5c 100755
--- a/.config/yadm/bootstrap
+++ b/.config/yadm/bootstrap
@@ -1,6 +1,4 @@
#!/usr/bin/fish
-# -*- mode: fish -*-
-
yadm decrypt
set keyboardconf \
@@ -124,67 +122,56 @@ printf "\n# Tangling org files #################################################
printf '\n\n==== Tangling awesome.org\n\n' && \
emacs -q --batch --eval '(require \'ob-tangle)' \
--eval '(setq org-confirm-babel-evaluate nil)' \
---eval '(org-babel-do-load-languages \'org-babel-load-languages \'((python . t)))' \
--eval '(org-babel-tangle-file "~/org/config/awesome.org")'
printf '\n\n==== Tangling bin.org\n\n' && \
emacs -q --batch --eval '(require \'ob-tangle)' \
--eval '(setq org-confirm-babel-evaluate nil)' \
---eval '(org-babel-do-load-languages \'org-babel-load-languages \'((python . t)))' \
--eval '(org-babel-tangle-file "~/org/config/bin.org")'
printf '\n\n==== Tangling fish.org\n\n' && \
emacs -q --batch --eval '(require \'ob-tangle)' \
--eval '(setq org-confirm-babel-evaluate nil)' \
---eval '(org-babel-do-load-languages \'org-babel-load-languages \'((python . t)))' \
--eval '(org-babel-tangle-file "~/org/config/fish.org")'
printf '\n\n==== Tangling i3.org\n\n' && \
emacs -q --batch --eval '(require \'ob-tangle)' \
--eval '(setq org-confirm-babel-evaluate nil)' \
---eval '(org-babel-do-load-languages \'org-babel-load-languages \'((python . t)))' \
--eval '(org-babel-tangle-file "~/org/config/i3.org")'
printf '\n\n==== Tangling index.org\n\n' && \
emacs -q --batch --eval '(require \'ob-tangle)' \
--eval '(setq org-confirm-babel-evaluate nil)' \
---eval '(org-babel-do-load-languages \'org-babel-load-languages \'((python . t)))' \
--eval '(org-babel-tangle-file "~/org/config/index.org")'
printf '\n\n==== Tangling nano.org\n\n' && \
emacs -q --batch --eval '(require \'ob-tangle)' \
--eval '(setq org-confirm-babel-evaluate nil)' \
---eval '(org-babel-do-load-languages \'org-babel-load-languages \'((python . t)))' \
--eval '(org-babel-tangle-file "~/org/config/nano.org")'
printf '\n\n==== Tangling picom.org\n\n' && \
emacs -q --batch --eval '(require \'ob-tangle)' \
--eval '(setq org-confirm-babel-evaluate nil)' \
---eval '(org-babel-do-load-languages \'org-babel-load-languages \'((python . t)))' \
--eval '(org-babel-tangle-file "~/org/config/picom.org")'
printf '\n\n==== Tangling polybar.org\n\n' && \
emacs -q --batch --eval '(require \'ob-tangle)' \
--eval '(setq org-confirm-babel-evaluate nil)' \
---eval '(org-babel-do-load-languages \'org-babel-load-languages \'((python . t)))' \
--eval '(org-babel-tangle-file "~/org/config/polybar.org")'
printf '\n\n==== Tangling rustfmt.org\n\n' && \
emacs -q --batch --eval '(require \'ob-tangle)' \
--eval '(setq org-confirm-babel-evaluate nil)' \
---eval '(org-babel-do-load-languages \'org-babel-load-languages \'((python . t)))' \
--eval '(org-babel-tangle-file "~/org/config/rustfmt.org")'
printf '\n\n==== Tangling spacemacs.org\n\n' && \
emacs -q --batch --eval '(require \'ob-tangle)' \
--eval '(setq org-confirm-babel-evaluate nil)' \
---eval '(org-babel-do-load-languages \'org-babel-load-languages \'((python . t)))' \
--eval '(org-babel-tangle-file "~/org/config/spacemacs.org")'
printf '\n\n==== Tangling tmux.org\n\n' && \
emacs -q --batch --eval '(require \'ob-tangle)' \
--eval '(setq org-confirm-babel-evaluate nil)' \
---eval '(org-babel-do-load-languages \'org-babel-load-languages \'((python . t)))' \
--eval '(org-babel-tangle-file "~/org/config/tmux.org")'
find ~/.local/bin -type f -exec chmod +x {} +
diff --git a/org/config/installation.org b/org/config/installation.org
index 07f715e..20bcc37 100644
--- a/org/config/installation.org
+++ b/org/config/installation.org
@@ -85,8 +85,7 @@
* Execute bootstrap
:PROPERTIES:
- :HEADER-ARGS: :tangle ~/.config/yadm/bootstrap
- :HEADER-ARGS:python: :tangle no
+ :HEADER-ARGS: :tangle ~/.config/yadm/bootstrap :shebang "#!/usr/bin/fish"
:CUSTOM_ID: Execute_bootstrap-e37054ef
:END:
=yadm= comes with a very handy feature: its bootstrap script. It can be
@@ -97,12 +96,6 @@
yadm clone https://github.com/phundrak/dotfiles
#+END_SRC
- Notice these two header files, we can see this is a fish script, hence why we
- need fish (which is my daily shell anyway).
- #+BEGIN_SRC fish
- #!/usr/bin/fish
- # -*- mode: fish -*-
- #+END_SRC
Let’s take a look at what it does.
** Decrypt private yadm files
@@ -343,60 +336,66 @@
(format "printf '\\n\\n==== Tangling %s\\n\\n' && \\\n" x)
(concat "emacs -q --batch --eval '(require \\'ob-tangle)' \\\n"
"--eval '(setq org-confirm-babel-evaluate nil)' \\\n"
- "--eval '(org-babel-do-load-languages \\'org-babel-load-languages \\'((python . t)))' \\\n"
(format "--eval '(org-babel-tangle-file \"~/org/config/%s\")'\n" x))))
files
"\n")
#+END_SRC
- #+RESULTS[5a74a8854c2ed55bea68930073468d18d04bea08]: generate-tangle
+ #+RESULTS[1c025aa6fca0a3251b995f0eaf6fa866cb2a8497]: generate-tangle
#+begin_example
+ printf '\n\n==== Tangling awesome.org\n\n' && \
+ emacs -q --batch --eval '(require \'ob-tangle)' \
+ --eval '(setq org-confirm-babel-evaluate nil)' \
+ --eval '(org-babel-tangle-file "~/org/config/awesome.org")'
+
printf '\n\n==== Tangling bin.org\n\n' && \
emacs -q --batch --eval '(require \'ob-tangle)' \
--eval '(setq org-confirm-babel-evaluate nil)' \
- --eval '(org-babel-do-load-languages \'org-babel-load-languages \'((python . t)))' \
--eval '(org-babel-tangle-file "~/org/config/bin.org")'
printf '\n\n==== Tangling fish.org\n\n' && \
emacs -q --batch --eval '(require \'ob-tangle)' \
--eval '(setq org-confirm-babel-evaluate nil)' \
- --eval '(org-babel-do-load-languages \'org-babel-load-languages \'((python . t)))' \
--eval '(org-babel-tangle-file "~/org/config/fish.org")'
printf '\n\n==== Tangling i3.org\n\n' && \
emacs -q --batch --eval '(require \'ob-tangle)' \
--eval '(setq org-confirm-babel-evaluate nil)' \
- --eval '(org-babel-do-load-languages \'org-babel-load-languages \'((python . t)))' \
--eval '(org-babel-tangle-file "~/org/config/i3.org")'
printf '\n\n==== Tangling index.org\n\n' && \
emacs -q --batch --eval '(require \'ob-tangle)' \
--eval '(setq org-confirm-babel-evaluate nil)' \
- --eval '(org-babel-do-load-languages \'org-babel-load-languages \'((python . t)))' \
--eval '(org-babel-tangle-file "~/org/config/index.org")'
printf '\n\n==== Tangling nano.org\n\n' && \
emacs -q --batch --eval '(require \'ob-tangle)' \
--eval '(setq org-confirm-babel-evaluate nil)' \
- --eval '(org-babel-do-load-languages \'org-babel-load-languages \'((python . t)))' \
--eval '(org-babel-tangle-file "~/org/config/nano.org")'
+ printf '\n\n==== Tangling picom.org\n\n' && \
+ emacs -q --batch --eval '(require \'ob-tangle)' \
+ --eval '(setq org-confirm-babel-evaluate nil)' \
+ --eval '(org-babel-tangle-file "~/org/config/picom.org")'
+
printf '\n\n==== Tangling polybar.org\n\n' && \
emacs -q --batch --eval '(require \'ob-tangle)' \
--eval '(setq org-confirm-babel-evaluate nil)' \
- --eval '(org-babel-do-load-languages \'org-babel-load-languages \'((python . t)))' \
--eval '(org-babel-tangle-file "~/org/config/polybar.org")'
+ printf '\n\n==== Tangling rustfmt.org\n\n' && \
+ emacs -q --batch --eval '(require \'ob-tangle)' \
+ --eval '(setq org-confirm-babel-evaluate nil)' \
+ --eval '(org-babel-tangle-file "~/org/config/rustfmt.org")'
+
printf '\n\n==== Tangling spacemacs.org\n\n' && \
emacs -q --batch --eval '(require \'ob-tangle)' \
--eval '(setq org-confirm-babel-evaluate nil)' \
- --eval '(org-babel-do-load-languages \'org-babel-load-languages \'((python . t)))' \
--eval '(org-babel-tangle-file "~/org/config/spacemacs.org")'
printf '\n\n==== Tangling tmux.org\n\n' && \
emacs -q --batch --eval '(require \'ob-tangle)' \
--eval '(setq org-confirm-babel-evaluate nil)' \
- --eval '(org-babel-do-load-languages \'org-babel-load-languages \'((python . t)))' \
--eval '(org-babel-tangle-file "~/org/config/tmux.org")'
#+end_example
diff --git a/org/config/polybar.org b/org/config/polybar.org
index 4c91db1..3f37bb2 100644
--- a/org/config/polybar.org
+++ b/org/config/polybar.org
@@ -5,9 +5,8 @@
#+HTML_HEAD_EXTRA:
#+HTML_HEAD_EXTRA:
#+PROPERTY: header-args :exports none
-#+PROPERTY: header-args:python :results output
#+PROPERTY: header-args:emacs-lisp :tangle no :exports none
-#+PROPERTY: header-args:conf-windows :tangle ~/.config/polybar/config :noweb yes :exports code
+#+PROPERTY: header-args:conf-windows :tangle ~/.config/polybar/config :noweb yes :exports code :mkdirp yes
* Presentation
:PROPERTIES:
@@ -238,23 +237,32 @@
| Siji | Siji:pixelsize=8 | 0 | Symbol display |
| Default font | fixed:pixelsize=8 | 0 | Fallback font |
- #+NAME: font-config
- #+BEGIN_SRC python :var table=fonts-polybar :cache yes
- for i in range(0, len(table)):
- print("font-{0} = {1};{2}".format(i, table[i][1], table[i][2]))
+ #+NAME: font-ws-config
+ #+HEADER: :var text="font"
+ #+BEGIN_SRC emacs-lisp :var table=fonts-polybar :cache yes
+ (setq counter 0)
+ (mapconcat (lambda (font)
+ (setq counter (+ 1 counter))
+ (format "%s-%d = %s;%s"
+ text
+ (- counter 1)
+ (nth 1 font)
+ (nth 2 font)))
+ table
+ "\n")
#+END_SRC
- #+RESULTS[a055f871fdabec995b015a8f083a77b0096a9c7f]: font-config
+ #+RESULTS[567cfb5e5a0bdfb0eca90846c8292b7d3fd585ea]: font-ws-config
: font-0 = Fira Sans Book:style=Book:pixelsize=10;1
: font-1 = IPAMincho:style=regular:pixelsize=6;0
: font-2 = unifont:fontformat=truetype:size=6:antialias=false;0
- : font-3 = NotoEmoji:scale=12:style=Book;0
+ : font-3 = NotoEmoji:style=Book:scale=16;0
: font-4 = Siji:pixelsize=8;0
: font-5 = fixed:pixelsize=8;0
Here’s the font configuration:
#+BEGIN_SRC conf-windows
- <>
+ <>
#+END_SRC
Note that only Fira Sans get a small offset due to the size of the font and
@@ -270,20 +278,35 @@
workspace indicator for i3. In the middle, we’ll get the title of the
focused window, and to the left we’ll have the date and time.
#+NAME: modules-generate
- #+BEGIN_SRC python :var table=[] :results value :cache yes
- left = 'modules-left = '
- center = 'modules-center = '
- right = 'modules-right = '
- for line in table:
- if line[1] == 'left':
- left += line[0] + ' '
- elif line[1] == 'center':
- center += line[0] + ' '
- else:
- right += line[0] + ' '
- return left + '\n' + center + '\n' + right
+ #+BEGIN_SRC emacs-lisp :var table=top-modules :results value :cache yes
+ (setq right '()
+ center '()
+ left '())
+ (dolist (module table)
+ (let* ((module-name (nth 0 module))
+ (module-layout (nth 1 module)))
+ (message "%S" module-layout)
+ (add-to-list (cond
+ ((string= "left" module-layout) 'left)
+ ((string= "center" module-layout) 'center)
+ (t 'right))
+ module-name)))
+ (concat (concat "modules-left = "
+ (mapconcat #'identity left " ")
+ "\n")
+ (concat "modules-center = "
+ (mapconcat #'identity center " ")
+ "\n")
+ (concat "modules-right = "
+ (mapconcat #'identity right " ")
+ "\n"))
#+END_SRC
+ #+RESULTS[90b932dc0fd32501e1513f14059b92de09a7b59e]: modules-generate
+ : modules-left = i3
+ : modules-center = xwindow
+ : modules-right = date
+
Here is the list of modules used:
#+NAME: top-modules
| Module name | Position | Brief description |
@@ -369,7 +392,7 @@
on, see [[#Declaration_of_the_bars-Top_bar_declaration-Fonts_and_locale-70a25466][Fonts and locale]] of the top bar.
#+BEGIN_SRC conf-windows
<>
- <>
+ <>
#+END_SRC
*** Modules
@@ -873,29 +896,9 @@
| 9 | 九 |
| 0 | 十 |
- #+NAME: generate-ws-names
- #+BEGIN_SRC python :var names=ws-names :exports none :cache yes
- for i in range(0, len(names)):
- print('ws-icon-{0} = {1};{2}'.format(i, names[i][0], names[i][1]))
- #+END_SRC
-
- #+RESULTS[e4cec50affbfc3c284504f1a0f3b6a8d78197c5d]: generate-ws-names
- #+begin_example
- ws-icon-0 = 1;一
- ws-icon-1 = 2;二
- ws-icon-2 = 3;三
- ws-icon-3 = 4;四
- ws-icon-4 = 5;五
- ws-icon-5 = 6;六
- ws-icon-6 = 7;七
- ws-icon-7 = 8;八
- ws-icon-8 = 9;九
- ws-icon-9 = 0;十
- #+end_example
-
Here are the corresponding configuration lines:
#+BEGIN_SRC conf-windows
- <>
+ <>
#+END_SRC
In case we create a workspace which isn’t named from ~0~ to ~9~, I want it
diff --git a/org/config/spacemacs.org b/org/config/spacemacs.org
index b0c9fa0..4a34230 100644
--- a/org/config/spacemacs.org
+++ b/org/config/spacemacs.org
@@ -2825,8 +2825,7 @@
#+END_SRC
Now, all keybindings that will be defined can be invoked in Normal-mode with
- the src_emacs-lisp[:exports results]{(princ dotspacemacs-leader-key)} key
- followed by the sequence assigned to each keybinding.
+ the ~SPC~ key followed by the sequence assigned to each keybinding.
Before some more specialized categories, I have two commands which don’t fit
into any other category that I sometime use. The first one is a fix for the